├── static
├── .nojekyll
└── img
│ ├── favicon.ico
│ ├── speak_logo.png
│ ├── tip-hero-1.jpg
│ ├── tip-image-1.png
│ ├── speak-logomark-256.jpeg
│ └── speak_logotype_reversed.svg
├── babel.config.js
├── docs
├── week-1
│ ├── _category_.json
│ ├── coding-interviews
│ │ ├── _category_.json
│ │ ├── pair-session-coding.md
│ │ ├── pair-programming.md
│ │ └── technical-interviews.md
│ ├── resume-screening
│ │ ├── _category_.json
│ │ ├── resume-feedback.md
│ │ ├── about-resumes.md
│ │ ├── resume-rubric.md
│ │ ├── resume-challenge.md
│ │ └── resume-tips.md
│ ├── coding-assessments
│ │ ├── _category_.json
│ │ ├── practice-coding-assessment.md
│ │ ├── why-coding-assessments.md
│ │ ├── time-complexity.md
│ │ ├── dsa-tips.md
│ │ ├── code-study-plan.md
│ │ └── big-list-of-dsa-problems.md
│ ├── welcome.md
│ ├── interview-components.md
│ ├── set-your-intentions.md
│ └── screening-calls.md
├── week-2
│ ├── _category_.json
│ ├── conclusion
│ │ ├── _category_.json
│ │ ├── congratulations.md
│ │ ├── join-a-cohort.md
│ │ └── recap.md
│ ├── behavioral
│ │ ├── _category_.json
│ │ ├── mock-interview.md
│ │ ├── behavioral-questions.md
│ │ ├── behavioral-quizzes.md
│ │ ├── practice-star.md
│ │ └── star-method.md
│ ├── general
│ │ ├── _category_.json
│ │ ├── asking-questions.md
│ │ ├── negotiation-etiquette.md
│ │ ├── remote-interview-checklist.md
│ │ └── know-your-audience.md
│ ├── whiteboarding
│ │ ├── _category_.json
│ │ ├── pair-session-system-design.md
│ │ ├── system-design.md
│ │ └── whiteboarding.md
│ ├── welcome.md
│ ├── take-home-projects.md
│ ├── presentations.md
│ └── developer-portfolio.md
├── welcome
│ ├── _category_.json
│ ├── how-to-contribute.md
│ ├── about-speak_.md
│ ├── about-cohorts.md
│ ├── resources.md
│ └── about-this-guide.md
└── cohort-handbook
│ ├── _category_.json
│ ├── faq.md
│ ├── welcome.md
│ ├── code-of-conduct.md
│ ├── post-cohort.md
│ └── before-you-begin.md
├── .gitignore
├── sidebars.js
├── package.json
├── README.md
├── src
├── pages
│ ├── index.module.css
│ └── index.js
└── css
│ └── custom.css
├── docusaurus.config.js
└── LICENSE
/static/.nojekyll:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
3 | };
4 |
--------------------------------------------------------------------------------
/static/img/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/speakcareers/tech-interview-prep-guide/HEAD/static/img/favicon.ico
--------------------------------------------------------------------------------
/static/img/speak_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/speakcareers/tech-interview-prep-guide/HEAD/static/img/speak_logo.png
--------------------------------------------------------------------------------
/static/img/tip-hero-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/speakcareers/tech-interview-prep-guide/HEAD/static/img/tip-hero-1.jpg
--------------------------------------------------------------------------------
/static/img/tip-image-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/speakcareers/tech-interview-prep-guide/HEAD/static/img/tip-image-1.png
--------------------------------------------------------------------------------
/docs/week-1/_category_.json:
--------------------------------------------------------------------------------
1 | {
2 | "label": "Week 1",
3 | "position": 3,
4 | "link": {
5 | "type": "generated-index"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/docs/week-2/_category_.json:
--------------------------------------------------------------------------------
1 | {
2 | "label": "Week 2",
3 | "position": 3,
4 | "link": {
5 | "type": "generated-index"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/static/img/speak-logomark-256.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/speakcareers/tech-interview-prep-guide/HEAD/static/img/speak-logomark-256.jpeg
--------------------------------------------------------------------------------
/docs/welcome/_category_.json:
--------------------------------------------------------------------------------
1 | {
2 | "label": "Welcome",
3 | "position": 1,
4 | "link": {
5 | "type": "generated-index"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/docs/cohort-handbook/_category_.json:
--------------------------------------------------------------------------------
1 | {
2 | "label": "Cohort handbook",
3 | "position": 2,
4 | "link": {
5 | "type": "generated-index"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/docs/week-2/conclusion/_category_.json:
--------------------------------------------------------------------------------
1 | {
2 | "label": "Conclusion",
3 | "position": 9,
4 | "link": {
5 | "type": "generated-index",
6 | "description": "You've completed the guide...now what?"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/docs/week-1/coding-interviews/_category_.json:
--------------------------------------------------------------------------------
1 | {
2 | "label": "Coding Interviews",
3 | "position": 7,
4 | "link": {
5 | "type": "generated-index",
6 | "description": "Live code with confidence."
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/docs/week-2/behavioral/_category_.json:
--------------------------------------------------------------------------------
1 | {
2 | "label": "Behavioral",
3 | "position": 3,
4 | "link": {
5 | "type": "generated-index",
6 | "description": "Strategies to pass behavioral interviews."
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/docs/week-2/general/_category_.json:
--------------------------------------------------------------------------------
1 | {
2 | "label": "General",
3 | "position": 7,
4 | "link": {
5 | "type": "generated-index",
6 | "description": "General advice that applies to all interviews."
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/docs/week-1/resume-screening/_category_.json:
--------------------------------------------------------------------------------
1 | {
2 | "label": "Resume Screening",
3 | "position": 4,
4 | "link": {
5 | "type": "generated-index",
6 | "description": "Start strong with the perfect resume."
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/docs/week-2/whiteboarding/_category_.json:
--------------------------------------------------------------------------------
1 | {
2 | "label": "Whiteboarding",
3 | "position": 2,
4 | "link": {
5 | "type": "generated-index",
6 | "description": "Tips and what to expect with whiteboarding."
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/docs/week-1/coding-assessments/_category_.json:
--------------------------------------------------------------------------------
1 | {
2 | "label": "Coding Assessments",
3 | "position": 5,
4 | "link": {
5 | "type": "generated-index",
6 | "description": "Practice makes perfect with assessments."
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Dependencies
2 | /node_modules
3 |
4 | # Production
5 | /build
6 |
7 | # Generated files
8 | .docusaurus
9 | .cache-loader
10 |
11 | # Misc
12 | .DS_Store
13 | .env.local
14 | .env.development.local
15 | .env.test.local
16 | .env.production.local
17 |
18 | npm-debug.log*
19 | yarn-debug.log*
20 | yarn-error.log*
21 |
22 | package-lock.json
--------------------------------------------------------------------------------
/docs/week-2/whiteboarding/pair-session-system-design.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 3
3 | ---
4 |
5 | # Cohort challenge: System design
6 |
7 | System design questions get asked at ALL LEVELS. It's important to understand the basics even if you are only looking for entry level roles.
8 |
9 | Luckily, it's easy to get practice!
10 |
11 | **_Instructions on how to pair up are pinned in your cohort's Discord channel._**
12 |
--------------------------------------------------------------------------------
/docs/week-1/coding-interviews/pair-session-coding.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 3
3 | ---
4 |
5 | # Cohort challenge: Pair programming
6 |
7 | :::info
8 |
9 | This module is for candidates actively participating in a Speak\_ Tech Interview Prep cohort. Haven't joined a cohort? [Learn more.](/docs/welcome/about-cohorts)
10 |
11 | :::
12 |
13 | Pair programming is an important interview skill. Luckily, it's easy to get practice!
14 |
15 | _Instructions on how to pair up are pinned in your cohort's Discord channel._
16 |
--------------------------------------------------------------------------------
/docs/week-1/resume-screening/resume-feedback.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 5
3 | description: 'Get resume feedback'
4 | ---
5 |
6 | # Cohort challenge: Get resume feedback
7 |
8 | :::info
9 |
10 | This module is for candidates actively participating in a Speak\_ Tech Interview Prep cohort. Haven't joined a cohort? [Learn more.](/docs/welcome/about-cohorts)
11 |
12 | :::
13 |
14 | Before you submit your resume, get some feedback from your peers.
15 |
16 | **_Instructions are pinned in your cohort's channel on Discord._**
17 |
--------------------------------------------------------------------------------
/docs/week-2/conclusion/congratulations.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 1
3 | ---
4 |
5 | # Congratulations!
6 |
7 | If you stuck to the timeline, you've made it through an _intense_ 2 weeks and learned a whole bunch of secrets about how to stand out during job interviews. 🙌🏻
8 |
9 | You should be proud of yourself! You made a smart decision by taking the time to learn (or review) important job search strategies and brush up on the relevant skills needed to ace the interview.
10 |
11 | If you put everything that you learned into practice, you'll be a better candidate and much more likely to win the job.
--------------------------------------------------------------------------------
/docs/week-2/conclusion/join-a-cohort.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 3
3 | ---
4 |
5 | # Join a cohort
6 |
7 | If you haven't already, consider joining a Speak\_ cohort and go through this material in a structured way with other job-seeking engineers.
8 |
9 | Our cohorts are designed to guide you through this material, but you'll also get:
10 |
11 | - Live workshops
12 | - An instant support system
13 | - Built in opportunities to practice key skills
14 | - Access to exclusive events
15 |
16 | And it's all totally free to you. No ISAs, no fees, no strings attached. 😎
17 |
18 | Join for free!
--------------------------------------------------------------------------------
/docs/cohort-handbook/faq.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 3
3 | description: You've got questions. We've got answers.
4 | ---
5 |
6 | # FAQ
7 |
8 | Have more questions about how the Tech Interview Prep cohort works? Check out this extensive list of answers to commonly asked questions. It covers pre-program, in-program, and post-program.
9 |
10 | 🙋🏽♀️ [Read the FAQ.](https://speakcareers.notion.site/Speak_-FAQs-0836a3df0ea94c0896a2b2b2ff923f01)
11 |
12 | If you've checked out the FAQs and still have questions, ask in the private cohort channel in Discord. That's the fastest way to get a response and it's very likely that others have the same question, so you'll be helping everyone out. 💫
--------------------------------------------------------------------------------
/docs/week-1/coding-assessments/practice-coding-assessment.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 6
3 | ---
4 |
5 | # Cohort challenge: Practice coding assessment
6 |
7 | :::info
8 |
9 | This module is for candidates actively participating in a Speak\_ Tech Interview Prep cohort. Haven't joined a cohort? [Learn more.](/docs/welcome/about-cohorts)
10 |
11 | :::
12 |
13 | As part of the Speak\_ program, you have access to a free practice assessment on Coderbyte, a platform used by employers to test a candidate's coding abilities.
14 |
15 | The practice assessment is 2 questions with a 90-minute time limit.
16 |
17 | **_Instructions on how to take the assessment are pinned in your cohort's channel on Discord._**
18 |
--------------------------------------------------------------------------------
/docs/week-2/behavioral/mock-interview.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 5
3 | ---
4 |
5 | # Cohort challenge: Mock interview
6 |
7 | Mock interviews are the BEST way to prepare for interviews. You'll get real practice and constructive feedback in a safe, supportive environment.
8 |
9 | Past Speak\_ candidates tell us all the time that the mock interviews were the MOST helpful part of the cohort -- and candidates who go on to get hired at partner companies often cite the mock interviews as the main reason they felt confident and prepared on the day of their interviews.
10 |
11 | For this cohort challenge, you'll get real practice answering common interview questions, working on your delivery, and fine-tuning your stories to be even more impactful.
12 |
13 | **_Instructions on how to pair up are pinned in your cohort's Discord channel._**
14 |
--------------------------------------------------------------------------------
/docs/week-1/welcome.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 1
3 | description: All about the first week. Let's go!
4 | ---
5 |
6 | # Welcome to Week 1
7 |
8 | Huge props for committing to preparing for your future tech interviews. That dedication is going to pay off. 🙌🏽
9 |
10 | To kick off Week 1, we'll talk about the power of intention setting, then dive into topics including resumes, coding assessments, recruiter screening calls, and coding interviews
11 |
12 | If you're in a cohort, stay tuned to the cohort channel in Discord and the weekly workshops to get a recommended timeline for staying on track with this material.
13 |
14 | If you're following this guide on your own, we recommend dedicating about an hour a day to reading the material and practice. Feel free to [join our Discord](https://discord.gg/wjnAEVjbCu) for some community support.
15 |
16 | Ready to go? Ok, let's roll! 🏎️
17 |
--------------------------------------------------------------------------------
/sidebars.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Creating a sidebar enables you to:
3 | - create an ordered group of docs
4 | - render a sidebar for each doc of that group
5 | - provide next/previous navigation
6 |
7 | The sidebars can be generated from the filesystem, or explicitly defined here.
8 |
9 | Create as many sidebars as you want.
10 | */
11 |
12 | // @ts-check
13 |
14 | /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
15 | const sidebars = {
16 | // By default, Docusaurus generates a sidebar from the docs folder structure
17 | tutorialSidebar: [{type: 'autogenerated', dirName: '.'}],
18 |
19 | // But you can create a sidebar manually
20 | /*
21 | tutorialSidebar: [
22 | 'intro',
23 | 'hello',
24 | {
25 | type: 'category',
26 | label: 'Tutorial',
27 | items: ['tutorial-basics/create-a-document'],
28 | },
29 | ],
30 | */
31 | };
32 |
33 | module.exports = sidebars;
34 |
--------------------------------------------------------------------------------
/docs/welcome/how-to-contribute.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 4
3 | description: Help make this open source guide better.
4 | ---
5 |
6 | # How to contribute
7 |
8 | This guide is completely free and open source. That means _you_ have the power to suggest changes to make it better for the whole community! 🌞
9 |
10 | To suggest changes, just click the "Edit this page" link at the bottom of any page. That will open up the source code on Github. You can edit the page right there on Github.
11 |
12 | You can also clone the [whole repository](https://github.com/speakcareers/tip), make changes locally, and then submit a pull request on Github. Please only create pull requests on the `main` branch (the `prod` branch is locked and reserved for the production version of this site).
13 |
14 | The Speak\_ team will review all edits and pull requests and merge in appropriate updates.
15 |
16 | We've chosen a Creative Commons license ([CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)) that allows you to reuse the content for non-commercial use as long as you attribute us as the source. 💖
--------------------------------------------------------------------------------
/docs/week-2/welcome.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 1
3 | description: You've made it to the second week. Onward!
4 | ---
5 |
6 | # Welcome to Week 2
7 |
8 | Hey hey, alright! You made it to Week 2. Well done. 👏🏾
9 |
10 | This week we're going to cover whiteboarding, including system design, all things behavioral (quizzes, questions, STAR), take home projects, portfolios, and presentations.
11 |
12 | We'll also round out the week with some general interview tips like knowing your audience, what questions you can ask during interviews, negotiation etiquette, and a handy remote interview checklist.
13 |
14 | If you're in a cohort, you'll give and get feedback on STAR (a powerful storytelling framework) answers and even do a mock interview to practice answering behavioral (aka soft skill) interview questions.
15 |
16 | If you're going through this guide solo, you can still practice drafting answers using the STAR method. Consider [joining a cohort](/docs/welcome/about-cohorts) to get feedback from your peers and practice answering questions in front of another human to get comfortable before your actual interviews.
17 |
18 | Let's do this! 🦾
--------------------------------------------------------------------------------
/docs/week-2/general/asking-questions.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 2
3 | ---
4 |
5 | # Asking Questions
6 |
7 | There is usually a moment in any interview process where you get to ask questions of your interviewer. Sometimes candidates are tempted to say, "no, I'm good," but that's a mistake.
8 |
9 | This is an opportunity to demonstrate that you care about your future at the company and about your potential future co-workers. It's also a chance for you to really learn if the role is a good fit for you.
10 |
11 | Remember, it's a two-way interview. You're checking them as out as much as they're checking you out! 😎
12 |
13 | There's obviously a balance to things like this - you don't want to make your interviewer feel bombarded with questions. It should be a natural conversation where you ask one clear question, give them space to think and respond, and then really listen to their response.
14 |
15 | Select 1-5 questions you like from the reference below (there are over 50 to choose from!) and be ready to ask questions when you're given the opportunity.
16 |
17 | :::tip Reference
18 |
19 | [51 Interview Questions You Should Be Asking](https://www.themuse.com/advice/51-interview-questions-you-should-be-asking)
20 |
21 | :::
22 |
--------------------------------------------------------------------------------
/docs/week-1/interview-components.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 3
3 | description: Know what to expect to perform your best.
4 | ---
5 |
6 | # Interview Components
7 |
8 | Tech companies (especially FAANG or MANGA or whatever the new acronym is for all the top tech giants 😂) have a multi-step interview process that covers a broad range of skills. 🧑🏾💻
9 |
10 | Depending on the type of role that you're applying for, you'll have to:
11 |
12 | - Prove that you know how to code
13 | - Show that you know about the company and its values
14 | - Demonstrate that you have the *right stuff*™️ to excel at the job
15 |
16 | **Here are some of the things you might run into during your interviews.**
17 |
18 | 1. Resume screening
19 | 2. Coding assessments
20 | 3. Screening calls
21 | 4. Pair programming
22 | 5. Whiteboarding
23 | 6. Behavioral quizzes
24 | 7. Take-home projects
25 | 8. Presentations
26 | 9. Technical interviews
27 |
28 | It can feel like a lot, right? But fear not - you're in the right place. Speak\_ will teach you how to crush every step of the interview process so you can go into your interviews feeling prepared, confident, and ready to land that job.
29 |
30 | The lessons in this course are all designed to prepare you for the components above. Each one is important, so let's get started! 🏃🏼♂️
31 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "technical-interview-prep",
3 | "version": "0.0.0",
4 | "private": true,
5 | "scripts": {
6 | "docusaurus": "docusaurus",
7 | "start": "docusaurus start",
8 | "build": "docusaurus build",
9 | "swizzle": "docusaurus swizzle",
10 | "deploy": "docusaurus deploy",
11 | "clear": "docusaurus clear",
12 | "serve": "docusaurus serve",
13 | "write-translations": "docusaurus write-translations",
14 | "write-heading-ids": "docusaurus write-heading-ids"
15 | },
16 | "license": "CC BY-NC-SA 4.0",
17 | "dependencies": {
18 | "@docusaurus/core": "^2.2.0",
19 | "@docusaurus/plugin-google-gtag": "^2.2.0",
20 | "@docusaurus/preset-classic": "^2.2.0",
21 | "@mdx-js/react": "^1.6.22",
22 | "clsx": "^1.2.1",
23 | "prism-react-renderer": "^1.3.5",
24 | "react": "^17.0.2",
25 | "react-dom": "^17.0.2"
26 | },
27 | "devDependencies": {
28 | "@docusaurus/module-type-aliases": "^2.2.0"
29 | },
30 | "browserslist": {
31 | "production": [
32 | ">0.5%",
33 | "not dead",
34 | "not op_mini all"
35 | ],
36 | "development": [
37 | "last 1 chrome version",
38 | "last 1 firefox version",
39 | "last 1 safari version"
40 | ]
41 | },
42 | "engines": {
43 | "node": ">=16.14"
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/docs/week-1/resume-screening/about-resumes.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 1
3 | description: "Why resumes are so important."
4 | ---
5 |
6 | # Why resumes are important
7 |
8 | Pretty much all employers have a hiring process that works to quickly assess anywhere from dozens to tens of thousands of candidates before choosing to spend more time considering them as potential employees. That's why the resume became a thing.
9 |
10 | Resumes are a short document that concisely list your experience, credentials, and individuality. Love it or hate it, a resume screening is almost always the very first step in the hiring process. That means to even get an interview, you're going to need your resume to pass that pesky screening phase. 😖
11 |
12 | This group of modules will cover resume tips and give you a super specific format to use to ensure your resume is easily scanned by recruiters and hiring managers.
13 |
14 | :::note Cover letters
15 |
16 | We don't get into cover letters in this guide. Ask 2 recruiters what they think of cover letters and you'll get 2 different opinions. 😂
17 |
18 | Some recruiters don't look at them at all, some of them value the personalization and care the candidate put into them.
19 |
20 | We recommend you don't spend a lot of time messing with cover letters. But if you make them, be sure they're customized for the specific company you're applying to and emphasize why you want that specific job and why you're the right person for it.
21 |
22 | :::
--------------------------------------------------------------------------------
/docs/week-1/coding-assessments/why-coding-assessments.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 1
3 | ---
4 |
5 | # Why companies use coding assessments
6 |
7 | Very often, one of the first steps in a technical interview process is a coding assessment. 👩🏼💻
8 |
9 | Companies use coding assessments to screen candidates before inviting them to an interview process. They do this because they get a lot of applications and want to make sure that they aren’t spending time and energy interviewing people who don’t know how to code.
10 |
11 | Online assessments act as a filter because (in theory) only qualified candidates will get through. Unqualified candidates either won’t take or won’t pass the assessment, therefore saving a company the hassle of interviewing someone who isn’t ready for the role.
12 |
13 | There's talk in the industry about whether these tests are effective or relevant, and some companies have moved to pair programming or live coding as an alternative. But, regardless of whether or not you like them, plenty of companies still use assessments as an initial screening, so you need to be prepared for them.
14 |
15 | Data structures and algorithms can be notoriously difficult, but what we've seen is that with preparation and practice, you can pass them.
16 |
17 | If you're in a cohort, there are plenty of opportunities for you to practice algorithm-style questions. You'll be taking a practice assessment this week, and you’ll get to work with your peers to solve some coding problems, too.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Speak\_ Tech Interview Prep Guide
2 |
3 | Read this guide on [the website](https://tip.speak.careers) for the best experience.
4 |
5 | ## About this guide
6 |
7 | This is a free, public, open source guide to help software engineers prepare for tech interviews at any company. 🚀
8 |
9 | It grew out of the free, 2-week cohort-based course Speak\_ runs, which connect hundreds of job-seeking engineers to help each other get ready for interviews.
10 |
11 | ## About Speak\_
12 |
13 | Speak_ is a new tech startup that's reinventing the hiring experience for Gen Z. Employers use our platform to give value to their candidates, whether or not they get an offer. ✨
14 |
15 | Through community, content, and events, we deliver a social candidate experience that helps each individual prepare for their interviews, grow their network, and sharpen their skills.
16 |
17 | [Learn more about Speak\_.](https://speak.careers)
18 |
19 | ## Contribute
20 |
21 | You can suggest edits to this guide to help make it better for the community. Find a typo? Suggest a fix! Know a resource that should be included? Let us know! 👊🏾
22 |
23 | ## Get involved
24 |
25 | There are lots of ways to get value from Speak\_.
26 |
27 | - [Join our Discord](https://discord.gg/wjnAEVjbCu)
28 | - [Join our talent base to get job opportunities](https://speak.careers)
29 | - [Subscribe to our newsletter](https://bit.ly/3RvNqHE)
30 | - [Join a free cohort](https://speak.careers)
31 |
32 | We hope you get value from this guide and share it with anyone you think might appreciate it. 🙂
--------------------------------------------------------------------------------
/docs/week-2/behavioral/behavioral-questions.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 2
3 | ---
4 |
5 | # Behavioral questions
6 |
7 | When you make it past the coding assessments and behavioral quizzes, you'll often find yourself in a round of interviews that are less technical.
8 |
9 | In behavioral interviews, the company will be looking to see what type of person you are and whether or not you'd make a good employee **_on their team_**.
10 |
11 | - What are your values? Do they align with the company values?
12 | - How well do you collaborate?
13 | - Do you take ownership of projects/outcomes?
14 | - Are you a strong communicator?
15 |
16 | ## Example questions
17 |
18 | Here are some common interview questions that you should prepare answers for ahead of time.
19 |
20 | 1. Tell me about yourself.
21 | 2. Why do you want to work at this company?
22 | 3. What is your biggest professional strength/weakness?
23 | 4. Tell me about a time when you disagreed with a coworker.
24 | 5. Share about a project you lead that you are proud of. What were the results?
25 | 6. Tell me about a time that you made a mistake? Why? How could you avoid it in the future?
26 |
27 | ## Bonus tips for better answers
28 |
29 | - Use 'I' statements. These answers should be about you and should give the interviewer a good idea of how you think and behave in certain situations.
30 | - When sharing about a situation where something went wrong, be sure to share how you corrected the mistake or learned from the experience.
31 | - Do not speak negatively of others, even if they were at fault for a costly mistake.
32 | - If you plan to use data in your stories, be sure to include supporting information. Do not throw out numbers unless you mean them.
33 |
--------------------------------------------------------------------------------
/src/pages/index.module.css:
--------------------------------------------------------------------------------
1 | /**
2 | * CSS files with the .module.css suffix will be treated as CSS modules
3 | * and scoped locally.
4 | */
5 |
6 | .heroBanner {
7 | background-color: #000;
8 | color: #FFF;
9 | padding: 64px 0;
10 | position: relative;
11 | }
12 |
13 | .heroBanner:before {
14 | content: ' ';
15 | display: block;
16 | position: absolute;
17 | left: 0;
18 | top: 0;
19 | width: 100%;
20 | height: 100%;
21 | opacity: 0.4;
22 | background-image: url('/img/tip-hero-1.jpg');
23 | background-repeat: no-repeat;
24 | background-position: center;
25 | background-size: cover;
26 | }
27 |
28 | .heroContent {
29 | max-width: 600px;
30 | z-index: 0;
31 | }
32 |
33 | .hero__title {
34 | font-size: 40px;
35 | -webkit-font-smoothing: antialiased;
36 | }
37 |
38 | .hero__subtitle {
39 | font-size: 18px;
40 | font-weight: 500;
41 | -webkit-font-smoothing: antialiased;
42 | }
43 |
44 | .hero__btn__div {
45 | margin-bottom: 1rem;
46 | }
47 |
48 | .heroBtn {
49 | background-color: #FFFFFF;
50 | color: #000000;
51 | }
52 |
53 | .heroLogo {
54 | width: 100px;
55 | }
56 |
57 | /*main {
58 | margin: 0 auto;
59 | max-width: 600px;
60 | padding: 64px 0 0;
61 | }*/
62 |
63 | .section {
64 | padding: 64px 0;
65 | }
66 |
67 | .narrow {
68 | margin: 0 auto;
69 | max-width: 600px;
70 | }
71 |
72 | .bgColor1 {
73 | background-color: #F6F6F2;
74 | }
75 |
76 | .verticalCenter {
77 | align-items: flex-start;
78 | display: flex;
79 | flex-direction: column;
80 | justify-content: center;
81 | }
82 |
83 | /*@media screen and (max-width: 996px) {
84 | .heroBanner {
85 | padding: 2rem;
86 | }
87 | }
88 |
89 | .buttons {
90 | display: flex;
91 | align-items: center;
92 | justify-content: center;
93 | }*/
94 |
--------------------------------------------------------------------------------
/docs/week-2/behavioral/behavioral-quizzes.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 1
3 | ---
4 |
5 | # Behavioral quizzes
6 |
7 | Behavioral quizzes are those online tests where you’re asked questions like the one below. These aren't quite as fun as those viral ones where you find out which character you would be in your favorite TV show or which Hogwarts house you belong to (Gryffindor?), these are more about your personality and how you'd fit in the company's culture.
8 |
9 | We're talking stuff like this -
10 |
11 | :::note Example Behavioral Question
12 |
13 | Which of the following statements best describes you?
14 |
15 | - [ ] I like for things to be clearly structured.
16 | - [ ] I look forward to the opportunity to learn new things.
17 |
18 | :::
19 |
20 | It can feel like a trick question, can’t it? 😵💫
21 |
22 | But behavioral quizzes are, for the most part, simply a way for a company to learn a little bit more about you.
23 |
24 | The best thing you can do is be completely honest. (Shocker, right? We keep saying that...)
25 |
26 | You might be wondering, “If there isn’t a right or wrong answer, why do I have to take the quiz in the first place?” Well, that’s a valid question, but there are plenty of reasons a company might give a quiz like this.
27 |
28 | - **They want to find candidates with certain behavioral characteristics.** Maybe the company really needs risk-takers who don't need data before taking action for a particular role. Or maybe they need cautious, analytical thinkers who can be trusted to work with sensitive customer data.
29 | - **They want their employees to succeed.** A big part of hiring is to put people in a role and environment where they can do their best work. This doesn't mean the company is right or the candidate's way of doing things is wrong - it's just about finding the right fit so that everyone can succeed.
30 |
31 | Be honest, and be yourself. Because, hey, you're pretty awesome.
32 |
--------------------------------------------------------------------------------
/docs/week-2/general/negotiation-etiquette.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 3
3 | description: The dos and donts when you negotiate.
4 | ---
5 |
6 | # Negotiation Etiquette
7 |
8 | Now that you're a tech interview expert, it's likely that you'll start landing offers and want to know how to negotiate with your potential employers. That's a great position to be in!
9 |
10 | **Here are some common mistakes we see candidates make.**
11 |
12 | 1. Accepting the offer and then trying to negotiate afterwards.
13 |
14 | Don't do this! It's like making a promise to someone and then going back on your word as soon as it doesn't suit you. You don't want to lose trust in one of your first interactions with your new employer. The time to negotiate is _before_ you accept the offer.
15 |
16 | 2. Using a cookie-cutter negotiation strategies without customizing or personalizing it at all.
17 |
18 | It can be a red flag if you make a request that doesn't fit your situation just because you learned someone else had success with it. Base your requests on your exact situation.
19 |
20 | 3. Lying about competing offers in order to demand a higher salary.
21 |
22 | Recruiters are pretty good at detecting lies. They also know the market very well and can tell when your request is way off. We don't recommend fabricating things as a negotiation tactic because it can really backfire if it's uncovered.
23 |
24 | ## A good life skill to hone
25 |
26 | Negotiation is an important part of the hiring process - and lots of other situations in life - but it can be tough to navigate, especially if you don't understand the terminology or know what to expect.
27 |
28 | :::tip Resource
29 |
30 | Here's a great guide from Candor on salary negotiation in tech. It goes over common compensation packages and offers tips for getting the best outcome.
31 |
32 | 👉 [Salary negotiation strategies everyone in tech already knows — but you don’t](https://candor.co/guides/salary-negotiation)
33 |
34 | :::
35 |
--------------------------------------------------------------------------------
/docs/week-2/conclusion/recap.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 2
3 | ---
4 |
5 | # Recap
6 |
7 | Over the last 2 weeks, you've reviewed quite a lot about how to prepare for every step of the technical hiring process at any company.
8 |
9 | You might run into any of these possible interview components at any company, so keep practicing!
10 |
11 | **Here's everything we covered**
12 |
13 | - Using implementation intentions to hold yourself accountable
14 | - What the possible components of a tech hiring process are
15 | - How to write a powerful resume that separates you from the pack
16 | - Why companies use online assessments and how to ace them
17 | - How to effectively study for online assessments
18 | - What a screening call is and how to prepare for them
19 | - What interviewers really look for during coding interviews
20 | - Why pair programming is so important and how to do it
21 | - What whiteboarding is and how has it changed in the remote era
22 | - What to expect during system design interviews
23 | - Why companies use behavioral quizzes
24 | - Example behavioral questions that you should prepare for in advance
25 | - How to use the STAR framework to be an effective communicator
26 | - What a take-home project entails and how can you go above and beyond
27 | - Which projects, and how many, you should put in your developer portfolio
28 | - How to rock a capstone presentation
29 | - Why it's so important to research any company you apply to
30 | - When to ask questions and why you should do so
31 | - How to present yourself well on remote interviews
32 | - Common negotiation mistakes and how to avoid them
33 |
34 | OMG whoa! Take that all in. That's a lot of ground you covered, right?! 🤯
35 |
36 | Way to go! 👏🏼👏🏼👏🏼
37 |
38 | This guide will remain free and open source, so feel free to refer back here whenever you have a new interview coming up. It's always wise to refresh your knowledge of the fundamentals.
39 |
40 | We hope you found this guide helpful. And if you did, please share it with a friend!
--------------------------------------------------------------------------------
/docs/week-2/behavioral/practice-star.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 4
3 | ---
4 |
5 | # Challenge: Practice STAR
6 |
7 | This challenge is all about putting this fancy STAR method to work for you. By completing it, you'll give yourself a HUGE advantage when you head into your live interviews.
8 |
9 | It is VERY likely that you will see some version of these questions in real interviews (for real), so spend time perfecting your answers and revise them over time.
10 |
11 | :::tip Tips
12 |
13 | - Use 'I' statements. (For example: "I observed a very bad result." vs "They did a terrible job.")
14 | - When sharing about a situation where something went wrong, be sure to share how you corrected the mistake.
15 | - Employers value people that take ownership and action rather than blaming others.
16 | - If you plan to use data in your stories, be sure to include supporting information or have it ready to speak to if asked. Don't throw out numbers unless you mean them.
17 |
18 | :::
19 |
20 | ## Instructions
21 |
22 | 1. Make a copy of the [STAR worksheet](https://docs.google.com/document/d/1dpTNrraULcgYxjggvLmoo6FlOnLkgwJH/copy)
23 | 2. Fill out the worksheet with your answers
24 |
25 | :::danger Important!
26 |
27 | If you are going through a Speak\_ cohort, you will use your STAR worksheet again in your mock interview pair session.
28 |
29 | Doing mock interviews and practicing your STAR delivery is **the best** way to prepare for behavioral interviews.
30 |
31 | :::
32 |
33 | ### Bonus tips
34 |
35 | To _really_ go above and beyond, here's what to do:
36 |
37 | 1. Record yourself delivering your STAR answers
38 | 2. Watch the recording ON MUTE and make notes about your body language. How can you improve it?
39 | 3. Listen to the recording (without watching) and make notes about your delivery. How do you sound? How can you improve?
40 | 4. Practice & repeat. The better you get at delivering these answers, the more confident you'll feel during your interviews.
41 |
42 | If you have any technical difficulties or questions, ask in the discord.
43 |
--------------------------------------------------------------------------------
/docs/cohort-handbook/welcome.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 1
3 | description: For candidates participating in a cohort.
4 | ---
5 |
6 | # Welcome to the cohort!
7 |
8 | :::info
9 |
10 | The "Cohort handbook" guide module is for candidates actively participating in a Speak\_ Tech Interview Prep cohort.
11 |
12 | Haven't joined a cohort? [Learn more.](/docs/welcome/about-cohorts) Or you can jump ahead to [Week 1](/docs/week-1/welcome).
13 |
14 | :::
15 |
16 | ### Introduction
17 |
18 | Woohoo! We’re so glad you’re here. 🎉
19 |
20 | This module in the guide will serve as your cohort handbook. It covers steps you'll need to take before you start the cohort, what to expect, what resources are available to you, and frequently asked questions.
21 |
22 | There are 3 places for you to pay attention to during the cohort.
23 |
24 | 1. This guide.
25 | 2. The private cohort channel in the Speak\_ Discord. (See the [next lesson](/docs/cohort-handbook/before-you-begin) for details.)
26 | 3. Pinned messages inside the cohort channel.
27 |
28 | If you have questions, ask them in the cohort channel and your Program Director will be there to support you.
29 |
30 | ### A new you
31 |
32 | The Speak\_ Tech Interview Prep cohort-based course is designed to be an intensive and transformative experience. In just 2 weeks, you’ll get prepared for technical interviews, learning everything you need to perform your best.
33 |
34 | You might be already working a job, caring for your family, or finishing school, so we know your time is valuable. Regardless of your situation, you can use this opportunity to sharpen your skills and improve your chances of getting an offer. You’ll get out of it what you put in into it.
35 |
36 | Our community is inclusive and supportive. You can be yourself here, and you can be vulnerable because we’re all working toward the same goal - trying to be our best selves.
37 |
38 | Speak\_ is not the company you’ll be applying for, so you can let your guard down and not worry about being something you’re not. We hope you can be exactly who you are, where you are, and let’s lift each other up because there’s a perfect role out there for each of us.
39 |
--------------------------------------------------------------------------------
/docs/week-1/coding-assessments/time-complexity.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 5
3 | ---
4 |
5 | # Time & Space Complexity
6 |
7 | Before we dive into the list of problems, let’s review an important concept related to technical assessments.
8 |
9 | ## Time Complexity
10 |
11 | The time complexity of an algorithm quantifies the amount of time taken by an algorithm to run as a function of the length of the input.
12 |
13 | Note that the time to run is a function of the length of the input and not the actual execution time of the machine on which the algorithm is running on.
14 |
15 | ## Space Complexity
16 |
17 | The space complexity of an algorithm quantifies the amount of space taken by an algorithm to run as a function of the length of the input.
18 |
19 | ## Asymptotic Notations
20 |
21 | Asymptotic notations are mathematical tools to represent the time complexity of algorithms for asymptotic analysis.
22 |
23 | ### Big O Notation
24 |
25 | Big O is used to describe how quickly an algorithm's runtime grows relative to its input as the input becomes arbitrarily large.
26 |
27 | If you solve an algorithm question during an interview, your interviewer might ask you about the runtime of your code.
28 |
29 | Learn more in [this article from freeCodeCamp](https://www.freecodecamp.org/news/big-o-notation-why-it-matters-and-why-it-doesnt-1674cfa8a23c/).
30 |
31 | If Big O is new to you and you'd like an in-depth look, watch this YouTube video:
32 |
33 |
34 |
35 | ### Other notations
36 |
37 | In addition to Big O Notation, you might also want to learn a little bit about Big Omega and Big Theta. They don't come up as much in most interviews -- but you should still know what they are.
38 |
39 | - Big Omega - Used to describe the _best case running time_ for an algorithm.
40 | - Big Theta - Used to describe the exact performance value of the algorithm or a useful, narrow range between upper and lower bounds.
41 |
--------------------------------------------------------------------------------
/docs/cohort-handbook/code-of-conduct.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 4
3 | description: Keep Speak_ a safe, inclusive space.
4 | ---
5 |
6 | # Code of conduct
7 |
8 | By participating in the Speak\_ community - including messaging on Discord, attending events, taking courses, and contributing code to this guide - you agree to our code of conduct. 🫡
9 |
10 | We expect full cooperation from all participants to ensure a safe environment for everybody.
11 |
12 | _Be excellent to each other, show empathy, and help make this a safe space to grow._
13 |
14 | ## Pretty much this
15 |
16 | Speak\_ is dedicated to providing a harassment-free experience for everyone, regardless of gender, age, sexual orientation, disability, physical appearance, race, ethnicity, experience, or religion (or lack thereof).
17 |
18 | We do not tolerate harassment of Speak\_ participants in any form. Sexual language and imagery is not appropriate, including anything communicated on Discord, calls, events, social media, or any other outlets.
19 |
20 | Speak\_ participants violating these rules may be sanctioned or expelled from the community at the discretion of the Speak\_ team.
21 |
22 | ## More specifically
23 |
24 | Harassment includes offensive verbal comments related to gender, age, sexual orientation, disability, physical appearance, body size, race, religion, sexual images in public spaces, deliberate intimidation, stalking, harassing photography or recording, sustained disruption of programming or other content, and unwelcome sexual attention.
25 |
26 | Participants asked to stop any harassing behavior are expected to comply immediately. If a participant engages in harassing behavior, the Speak\_ team may take any action they deem appropriate, including warning the offender or expulsion from the community.
27 |
28 | If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact a member of the Speak\_ team immediately by direct messaging Team Speak\_ on discord or by emailing learn@speak.careers.
29 |
30 | Thank you for respecting this code of conduct and making the Speak\_ community a special and safe place for everyone who wants to participate.
31 |
--------------------------------------------------------------------------------
/docs/week-2/whiteboarding/system-design.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 2
3 | ---
4 |
5 | # System Design
6 |
7 | You might get asked to solve system design questions that are more open-ended. These challenges test how you might develop complex and large-scale systems.
8 |
9 | ## Helpful tips
10 |
11 | Going through the tips below will help you deliver a solid system design answer.
12 |
13 | :::tip Bonus Resource
14 |
15 | Are you new to system design? Don't worry! Check out this amazing resource for a complete overview of system design, including study tips, anki flashcards, and more.
16 |
17 | [System Design Primer](https://github.com/donnemartin/system-design-primer)
18 |
19 | :::
20 |
21 | ### Clarify the requirements
22 |
23 | There’s not going to be one solution to the problem you’re presented with. Get clear on anything that’s ambiguous before you dive in.
24 |
25 | Just know that sometimes the answer you’re given is, “you already have all the information you need!” That’s the interviewer's way of saying that they’re not going to give you more details and you should proceed as best as you can with the information you already have. Good luck. 😁
26 |
27 | ### Set some high-level criteria
28 |
29 | What scale is expected from the system? What do users need to be able to do? Show that you’re thinking ahead by sharing some of your assumptions.
30 |
31 | ### Define the technical needs
32 |
33 | What APIs are needed? Is there a frontend, backend, and a datastore?
34 |
35 | ### Define the data model
36 |
37 | Define a high-level structure for the important objects in your solution. Also, note the relationships between these objects. This is a prototype of your database schema.
38 |
39 | ### Do the high-level design
40 |
41 | Draw a block diagram with 5-6 boxes representing the core components of our system. Identify enough components that are needed to solve the actual problem from end to end.
42 |
43 | ### Do the detailed design
44 |
45 | Keep going! Consider trade-offs between different options while keeping system constraints in mind.
46 |
47 | ### Identify and resolve bottlenecks
48 |
49 | If time allows, see if you can catch any potential bottlenecks and start solving those. Also, take a moment to appreciate yourself. You’re clearly a total badass. 👏
50 |
--------------------------------------------------------------------------------
/docs/week-1/coding-interviews/pair-programming.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 2
3 | ---
4 |
5 | # Pair programming
6 |
7 | Pair programming is where two developers work using only one machine - or in the remote world, where one person shares their screen. 👩🏾🦳💻👨🏼🦰
8 |
9 | There are a few ways of running pair programming sessions, but the most popular is where one person acts as the "driver" who writes code, the other acts as the "navigator" who will check the code being written and also figure out where to go next. These roles can be switched at any time.
10 |
11 | At some companies, pair programming is a core part of the engineering experience. It can be an important tool where code quality is critical, like in banking or similar industries where compliance requires security and safety measures for users.
12 |
13 | You'll be working in pairs multiple times in this cohort. For your first pair session, the focus is *pair programming,* so here’s a quick framework you should follow.
14 |
15 | ## Driver/Navigator Pair Programming Framework
16 |
17 | **The Driver will...**
18 |
19 | - Write code, run tests, have control of code
20 | - Focus on one problem at a time
21 | - Self-narrate at a high level (e.g. "Okay, now let's introduce a random number function", NOT "I'm now creating a variable named X that I'm assigning the value 4")
22 | - Assume your navigator can read the code and understand it; the goal is to communicate purpose and intention, not mechanics
23 |
24 | **The Navigator will...**
25 |
26 | - Keep a "todo" list
27 | - Politely nudge the driver in the right direction (without taking control). Examples:
28 | - Can we write a test for that?
29 | - Can we refactor a bit now?
30 | - Let's check in
31 | - Let's revert
32 | - Let's take a break
33 | - *Aways ask permission* before grabbing the keyboard
34 | - "Do you mind if I drive now?"
35 | - Silently count to 10 before interrupting with (e.g. a typo or syntax error)
36 | - Chances are that the driver will notice and fix it themselves
37 |
38 | :::tip References
39 |
40 | - [IBM's Program in Pairs](https://www.ibm.com/garage/method/practices/code/practice_pair_programming/)
41 | - [Pair Programming Guide by Weblab](https://medium.com/@weblab_tech/pair-programming-guide-a76ca43ff389)
42 |
43 | :::
44 |
--------------------------------------------------------------------------------
/docs/cohort-handbook/post-cohort.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 5
3 | description: Great! It's over...now what?
4 | ---
5 |
6 | # After the cohort
7 |
8 | Congrats! 🎉 You've made it through an _intense_ 2 weeks and learned a whole bunch of secrets about how to stand out during job interviews.
9 |
10 | We hope you’ve gotten a lot of value out of participating in the cohort and working with your peers in the community. It was a fast-paced couple of weeks and you should be proud of the work you did to improve your chances at landing a great new job.
11 |
12 | ## What happens now?!
13 |
14 | Now that you've joined the Speak\_ talent base, Whenever you're eligible for a role at one of our partner companies, we'll share your resume with them for review. It's then up to them who to invite to their company-specific community, followed by an interview.
15 |
16 | We're adding new partner companies every month, and we’ll continue to try and match you with job opportunities. You’ll get automatically invited if you’re eligible, so no need to reapply or go through another cohort.
17 |
18 | Otherwise, you're all set and we genuinely hope you learned a lot about the technical interview process and feel much more confident heading into your interviews. Your dream job is just around the corner! 💰
19 |
20 | ## Ways to stay involved in Speak\_
21 |
22 | Our mission at Speak\_ is to eliminate underrepresentation in tech by helping qualified talent match with employers who value diversity. We need your help to achieve this daunting, but urgent mission.
23 |
24 | - **Add yourself as a Speak\_ Alum on LinkedIn**! You can find us in the Education section.
25 | - **Tell your friends about what we’re doing**! Who do you know that could benefit from Speak\_?
26 | - **Stay active in Discord** by answering questions, welcoming new community members, and sharing your journey with everyone.
27 | - **Come to our events** and bring along your friends! Alums get to ask questions at live events.
28 | - **Tell recruiters about how helpful Speak\_ was for you**. Encourage them to check us out for their talent communities.
29 | - **Subscribe to our newsletter** to be first in line for events, new opportunities, and exclusives.
30 |
31 | Thank you for being a part of this community and for being open to growth and connection. We know that there’s a perfect job out there for you and you’re going to find it. We’re here to help. 👊🏾
--------------------------------------------------------------------------------
/docs/welcome/about-speak_.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 2
3 | description: Find out how Speak_ can help you.
4 | ---
5 |
6 | # About Speak_
7 |
8 | ## Social hiring
9 |
10 | Speak\_ is a new tech startup that's reinventing the hiring experience for Gen Z. Employers use our platform to give value to their candidates, whether or not they get an offer. ✨
11 |
12 | Through community, content, and events, we deliver a social candidate experience that helps each individual prepare for their interviews, grow their network, and sharpen their skills.
13 |
14 | ## Our mission
15 |
16 | We've also grown a diverse community of software engineers to help connect underrepresented talent to the job opportunities they deserve. We offer 100% free resources - including this guide and its cohort-based course - to help prepare candidates for the interview process at top tech companies that value diversity.
17 |
18 | The job search process can be lonely and stressful, but it doesn't have to be.
19 |
20 | What if you could practice with peers and get the exact help you need to perform well in tech interviews? What if it were a collaborative experience with personalized support?
21 |
22 | That's the world Speak\_ is creating! 🌈
23 |
24 | We believe there's not a lack of information online, but it can be hard to know what's important and to learn and improve on your own. Curated, social experiences are the best way to prepare you to ace the interview and thrive in your first or next role.
25 |
26 | ## Free resources
27 |
28 | In addition to this guide, here are some other goodies to help you in your job search.
29 |
30 | 💬 **Discord community**
31 | Join our chat community for software engineers to meet your peers, get coding advice, share tips and project feedback, and more. It's safe, constructive space, and all are welcome.
32 | [Join our discord.](https://discord.gg/wjnAEVjbCu)
33 |
34 | 😎 **Talent base**
35 | When you apply to Speak\_, you're joining our talent base to get matched with job opportunities. You can unsubscribe from opportunities any time.
36 | [Get job offers.](https://speak.careers)
37 |
38 | 🗞️ **Community newsletter**
39 | Our weekly newsletter is where we share engineering-related events, tips, and community news.
40 | [Subscribe to our newsletter.](https://bit.ly/3RvNqHE)
41 |
42 | 🤝 **Tech Interview Prep cohorts**
43 | We run a free, 2-week cohort-based course to bring this guide to life and get support from your peers and our team.
44 | [Learn about cohorts.](/docs/welcome/about-cohorts)
--------------------------------------------------------------------------------
/docs/week-1/resume-screening/resume-rubric.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 3
3 | ---
4 |
5 | # Resume rubric
6 |
7 | On the lesson called `Challenge: Update your resume` in this module, we'll share the Speak\_ resume template with you so that you can complete it and submit it.
8 |
9 | For Speak\_ to attempt to match you with partner companies, you must follow the rubric. If your resume doesn’t check all of the boxes below then we cannot accept it.
10 |
11 | :::danger important! Do not change the formatting.
12 |
13 | **If you change the formatting then your resume will be automatically rejected.**
14 |
15 | We cannot share your resume with our partner companies if you don't follow the rules listed below. Formatting is important.
16 |
17 | Do not change:
18 | - Fonts
19 | - Colors
20 | - Margins
21 | - Line spacing
22 | - Section titles
23 | - Text alignment
24 |
25 | You can always make another version to share outside of Speak\_. 😉
26 |
27 | :::
28 |
29 | ## The Speak\_ resume rubric
30 |
31 | Use the following rubric to make sure that your Speak\_ resume can be accepted.
32 |
33 | ### General
34 |
35 | - [ ] The Speak\_ Resume formatting has not been changed at all.
36 | - [ ] The Speak\_ Resume is 1 or 2 pages long.
37 |
38 | ### Resume heading
39 |
40 | - [ ] The name in the header has been changed to your name.
41 | - [ ] The email address correctly links to your email.
42 | - [ ] The fake phone number has been replaced with your real number.
43 | - [ ] The LinkedIn link points to your LinkedIn profile.
44 | - [ ] The Github link points to your Github profile.
45 | - [ ] The Portfolio link points to your developer portfolio website. If you don’t have a portfolio site, then you can remove the Portfolio link from the resume.
46 | - [ ] The location has been replaced with your location.
47 | - [ ] The pronouns have been updated or removed.
48 |
49 | ### Resume personalization
50 |
51 | - [ ] The Summary is less than two lines.
52 | - [ ] The Skills section lists your technical skills.
53 | - [ ] The Education section includes all college degrees and/or coding bootcamps.
54 | - [ ] The Experience section only includes relevant work experience and/or internships.
55 | - [ ] The Projects section has fewer than 5 total projects. (2-3 is the sweet spot!)
56 | - [ ] No Education, Experience, or Project listed has more than 4 bullet points.
57 |
58 | :::caution Note
59 |
60 | If you don’t have a full year of experience with a skill but want to include it, use a decimal point.
61 |
62 | Example: Python 0.25 | JavaScript 0.5
63 |
64 | :::
65 |
--------------------------------------------------------------------------------
/docs/week-1/set-your-intentions.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 2
3 | description: A proven trick to achieve your goals.
4 | ---
5 |
6 | # Challenge: Set your intentions
7 |
8 | ## What is an intention?
9 |
10 | An intention is a **commitment to yourself** to follow through on something. 🎯
11 |
12 | Typically, an intention follows the format:
13 |
14 | :::note template
15 |
16 | "During the next week, I will partake in at least [MINUTES] of [ACTIVITY] on [DAY] at [TIME OF DAY] at/in [PLACE]."
17 |
18 | :::
19 |
20 | Here’s a good example:
21 |
22 | :::note example
23 |
24 | “Over the next month, I will do at least 60 minutes of Leetcode practice every Tuesday and Thursday at 7pm in my office.”
25 |
26 | :::
27 |
28 | ## Why should you set one?
29 |
30 | The simple step of writing down when, where, and how you plan on reaching your goal can have a powerful effect. Doing so makes it much more likely that you follow through on your plans.
31 |
32 | Science-backed data shows that an [implementation intention](https://en.wikipedia.org/wiki/Implementation_intention) (like the one above) can result in a higher probability of successful goal attainment. It makes sense - getting specific and visualizing an outcome makes it more likely to come true. 🔮
33 |
34 | And there's a bunch of science that supports this.
35 |
36 | Watch this video for a deep dive into how effective implementation intentions can be:
37 |
38 |
39 |
40 | ---
41 |
42 | :::tip
43 |
44 | Check out these articles if you want to deep dive into the topic.
45 |
46 | - [Implementation Intentions by James Clear](https://jamesclear.com/implementation-intentions)
47 | - [Impementation Intentions summary on Iresearchnet](http://psychology.iresearchnet.com/social-psychology/control/implementation-intentions/)
48 | - [Implementation Intentions Facilitate Action Control](https://www.psychologytoday.com/us/blog/dont-delay/201001/implementation-intentions-facilitate-action-control)
49 | - [Implementation Intentions and Goal Achievement](https://www.sciencedirect.com/science/article/abs/pii/S0065260106380021)
50 |
51 | :::
52 |
53 | ## Take Action!
54 |
55 | At Speak\_, we're providing a ton of resources to help you prepare for upcoming interviews, but it's ultimately up to you to follow through by learning and practicing the skills that will land you your dream job.
56 |
57 | Now is your chance to create your own intention and start off your job search on the right foot.
58 |
59 | If you're in a cohort, follow the link in the pinned message of the cohort channel to share your intention to create accountability during the program.
60 |
--------------------------------------------------------------------------------
/docs/welcome/about-cohorts.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 3
3 | description: Don't prepare alone. Join your peers.
4 | ---
5 |
6 | # About cohorts
7 |
8 | The job search can be a long, lonely, difficult, stressful, disheartening, and demoralizing experience. It can make even the best candidates question themselves. 😔
9 |
10 | But it doesn't have to be that way. 😃
11 |
12 | At Speak\_, we work hard to create a positive, safe, inclusive environment where software engineers can turn to one another for support. And we foster this sense of community even more through free 2-week Tech Interview Prep cohorts.
13 |
14 | ## What's included?
15 |
16 | Each Speak\_ Tech Interview Prep cohort lasts 2 weeks and includes:
17 |
18 | - Cohort workshops
19 | - Multiple pair sessions with peers
20 | - Practice online coding assessments
21 | - Access to private discord channels
22 | - Support from engineers recently hired
23 | - Support from the Speak\_ team
24 |
25 |
26 | ## Community-powered
27 |
28 | The best part of joining a cohort is connecting with peers going through the same experience as you.
29 |
30 | It's a way for you to:
31 |
32 | - Instantly build up a support system of other software engineers
33 | - Create relationships that live on beyond the cohort
34 | - Easily find partners for pair sessions and coding practice
35 | - Get peer feedback on how to improve
36 | - Share wins (and losses) in a supportive community
37 |
38 | Just check out what past participants have had to say about the cohort experience.
39 |
40 | > _"I was able to meet and speak with all types of people! Normally I am quite shy and reserved, but here I was able to find my voice."_
41 | >
42 | > \- Richard K.
43 |
44 | > _"I finished Speak\_ right around the end of my bootcamp and it came at just the right time. It held me accountable to my learning thus far and pushed me to keep going. This was absolutely a great experience in terms of taking ownership of the tech prep process and stepping out of my comfort zone to meet other devs. There is a huge supportive community waiting for you here at Speak\_!"_
45 | >
46 | > \- Dakota F.
47 |
48 | > _"The program really helped me gain confidence in my interviewing skills by sharpening my data structures and algorithm skills and also my behavioral interview skills."_
49 | >
50 | > \- Jose R.
51 |
52 | > _"Applying to jobs, especially in tech, is such an isolating and demoralizing process. Through Speak\_, I was given the opportunity to network with peers and have access to resources that bolstered my confidence, making me both a better interviewee and a better programmer."_
53 | >
54 | > \- Mihir L.
55 |
56 |
57 |
58 | ## How do I join a cohort?
59 |
60 | We run cohorts every month and you're welcome to join us. You can apply for the next one by clicking that button below. 👇🏾
61 |
62 | Apply for the next cohort
63 |
--------------------------------------------------------------------------------
/docs/week-1/coding-interviews/technical-interviews.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 1
3 | ---
4 |
5 | # Coding interviews
6 |
7 | Technically, not all tech interviews are technical. But the coding interview definitely is. 😝
8 |
9 | ## What is a coding interview?
10 |
11 | In the coding interview, you’re usually matched up with a member of the team that you’d be working with if you got hired and tasked with a realistic challenge, which might mean whiteboarding or live coding. (More about these types of interviews in other modules.)
12 |
13 | Sometimes a coding interview is just another Leetcode question -- but this time with the watchful eyes of a potential team member. If that's the case, remember to use [REACTO](/docs/week-1/coding-assessments/dsa-tips.md) to really shine.
14 |
15 | The challenges that you’re given will usually not require more than 30-45 minutes to complete, and you’ll work through them in real-time under the guidance of your interviewer. They’ll watch as you work, ask clarifying questions, and nudge you in the right direction if you get off track.
16 |
17 | There are a few things the interviewer is looking for.
18 |
19 | ### Does your reality match your resume?
20 |
21 | We hear a lot from employers that it’s a big red flag if they start digging into experience listed on a candidate’s resume and it turns out things weren’t represented honestly.
22 |
23 | We also hear that anything on your resume is fair game for questions during the coding interview, and your interviewer will know how to code and be able to tell if you understand these topics.
24 |
25 | Be honest and be willing to show off what you do know and admit when you don’t know something. Nobody knows everything!
26 |
27 | ### How well can you code?
28 |
29 | In addition to being able to complete the task, the interviewer might be paying attention to your code formatting, how often you use comments, your naming conventions, and more. Before you go into the interview, you should do a bit of research into the company’s best practices and see if they have a public style guide that you can follow.
30 |
31 | ### How well can you communicate?
32 |
33 | Coding in a coding interview is less about the code itself and more about your thought process, attitude, ability to solve problems, and receptiveness to input from others. Be a great communicator by clearly explaining what you’re doing, why you’re doing it, and what you expect the result to be.
34 |
35 | Stay positive and take any hints the interviewer gives you along the way.
36 |
37 | ### How well can you work with others?
38 |
39 | The person interviewing you might become your day-to-day teammate. Be receptive to their input and keep in mind that they’re trying to help. If you’re resistant to hints and interrupt them when they’re speaking, you’ll leave a negative impression. Follow their guidance, use their suggestions, and work with them to solve the challenge.
40 |
--------------------------------------------------------------------------------
/docs/welcome/resources.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 5
3 | description: Community-sourced goodies.
4 | ---
5 |
6 | # Resources
7 |
8 | Here are some great resources related to preparing for tech interviews recommended by members of the Speak\_ community. Check them out! 👊🏼
9 |
10 | :::caution Suggest resources
11 |
12 | Do you know of a killer resource that’s missing here? Just click "Edit this page" at the bottom of the post and make a recommendation.
13 |
14 | :::
15 |
16 | ## Websites
17 |
18 | **General**
19 |
20 | - [freeCodeCamp](https://www.freecodecamp.org/)
21 | - [Codecademy](https://www.codecademy.com/learn)
22 | - [Tech Interview Handbook](https://www.techinterviewhandbook.org/)
23 |
24 | **CSS**
25 |
26 | - [Josh Comeau](https://www.joshwcomeau.com/css/designing-shadows/)
27 |
28 | **Data structures & algorithms**
29 |
30 | - [Neetcode](https://neetcode.io/)
31 | - [Firecode](https://firecode.io/pages/landing)
32 | - [Structy](https://www.structy.net/)
33 |
34 | **JavaScript**
35 |
36 | - [HTML Cheatsheet](https://htmlcheatsheet.com/js/)
37 | - [JavaScript Info](https://javascript.info/)
38 | - [Eloquent JavaScript](https://eloquentjavascript.net/)
39 | - [Kent C Dodds](https://kentcdodds.com/blog/using-fetch-with-type-script)
40 | - [NodeSchool](https://nodeschool.io/#workshopper-list)
41 |
42 | ## YouTube
43 |
44 | **Data structures & algorithms**
45 |
46 | - [Constantin Irimia](https://www.youtube.com/channel/UC-HHxlBILQUFDKMkaoSRPPg) ← Speak\_ Community Member!
47 | - [Algorithms with Attitude](https://www.youtube.com/c/AlgorithmswithAttitude)
48 |
49 | **General**
50 |
51 | - [The Coding Train](https://youtube.com/c/TheCodingTrain)
52 | - [Network Chuck](https://www.youtube.com/c/NetworkChuck)
53 | - [Fireship](https://www.youtube.com/c/Fireship)
54 | - [CSDojo](https://youtube.com/c/CSDojo)
55 | - [sentdex](https://youtube.com/c/sentdex)
56 |
57 | **C++**
58 |
59 | - [Bucky Roberts](https://youtube.com/user/thenewboston)
60 |
61 | **JavaScript**
62 |
63 | - [JavaScript Mastery](https://www.youtube.com/channel/UCmXmlB4-HJytD7wek0Uo97A)
64 | - [funfunfunction](https://www.youtube.com/c/funfunfunction)
65 |
66 | **Python**
67 |
68 | - [Arjan Codes](https://www.youtube.com/c/ArjanCodes)
69 |
70 | **Ruby**
71 |
72 | - [Giraffe Academy](https://youtube.com/c/GiraffeAcademy)
73 |
74 | ## Tools
75 |
76 | - [CodeGrepper Chrome Extension](https://chrome.google.com/webstore/detail/grepper/amaaokahonnfjjemodnpmeenfpnnbkco?hl=en)
77 | - [CodePen](https://codepen.io/)
78 |
79 | ## Courses
80 |
81 | **AWS**
82 |
83 | - [Stephane Maarek](https://www.udemy.com/user/stephane-maarek/)
84 |
85 | **HTML & CSS**
86 |
87 | - [CS50 - Harvard](https://www.youtube.com/watch?v=alnzFK-4xMY)
88 | - [Understanding HTML and CSS](https://www.udemy.com/course/understanding-html-and-css/)
89 |
90 | **JavaScript**
91 |
92 | - [Angela Yu's Web Dev Bootcamp](https://www.udemy.com/course/the-complete-web-development-bootcamp/)
93 | - [Understand JavaScript](https://www.udemy.com/course/understand-javascript/)
94 |
95 | **Game dev**
96 |
97 | - [GameDev](https://www.gamedev.tv/)
98 |
--------------------------------------------------------------------------------
/docs/week-2/general/remote-interview-checklist.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 4
3 | ---
4 |
5 | # Remote Interview Checklist
6 |
7 | The world is a-changin', y'all. These days, companies that used to fly you out for in-person interview events are running the whole operation online through tools like Zoom.
8 |
9 | Some companies are going back to requiring everyone to work in an office, some are going with a hybrid model where employees are expected to visit the office a few times a week, but many notable companies have gone fully remote with no plans to return to the office anytime soon.
10 |
11 | Whether or not you've worked remotely or had a remote interview before, it's important you know what you need to be successful in this type of online setting.
12 |
13 | We've got you covered. Here's a checklist you can use for every remote interview to make sure you're good to go.
14 |
15 | ## Remote Interview Checklist
16 |
17 | - [ ] Get a stable internet connection
18 | - [ ] Test your webcam
19 | - [ ] Use headphones
20 | - [ ] Test your microphone
21 | - [ ] Find a quiet, well-lit area
22 | - [ ] Breathe and stay positive
23 |
24 | ### Get a stable internet connection
25 |
26 | Nothing is more frustrating than losing time and getting all flustered in your interview because you've got a laggy or unstable internet connection.
27 |
28 | Even if you have to relocate somewhere for the interview time, set yourself up to succeed by not worrying about your internet dropping out on you in a really critical time.
29 |
30 | ### Test your webcam
31 |
32 | A big percentage of human communication is non-verbal. It's expected that you'll be on camera for remote interviews. You can use a built-in laptop camera or an external webcam plugged into your computer.
33 |
34 | Practice being on camera because doing it for the first time during an interview is needlessly nerve-wracking.
35 |
36 | ### Use headphones
37 |
38 | Headphones will minimize external noise for you and your interviewer. You can also better control how well you can hear them, which makes answering challenging questions way easier. Plus, headphones usually help you avoid feedback issues.
39 |
40 | ### Test your microphone
41 |
42 | You're an engineer, so you're definitely smart enough to get your mic settings dialed in.
43 |
44 | You don't want to blow your interviewer's head off with an overly-loud mic input level. Oh, and you also don't want to make your interviewer strain to hear you either. Test this out during Speak\_ to find the right levels so it goes smoothly in your interviews.
45 |
46 | ### Find a quiet, well-lit area
47 |
48 | Go somewhere you won't get interrupted and can stay focused.
49 |
50 | Try to get enough light in front of you so that your face is visible and not in silhouette (that's just creepy). Face the window when bright light is coming in. Turn on all the lights in your room. If you wanna get super fancy, get one of those ring lights all the Instagram influencers use. 💁🏽♀️
51 |
52 | ### Breathe and stay positive
53 |
54 | Breathing helps calm your nerves and focus.
55 |
56 | It brings you into the moment, which is great because thinking of the past (_I should've prepared more_) or the future (_what if I don't get this job?_) can sometimes be stressful.
57 |
58 | If you can remain optimistic and positive before and during your interview, you'll be able to better manage any bumps in the road, and your interviewer will appreciate that, too.
59 |
60 | :::tip
61 |
62 | Some of these tips might seem silly or inconsequential to you, but having a decent remote interview setup can make a big difference in how you perform.
63 |
64 | Take advantage of every little improvement you can in order to stand out, do your best, and make a great impression.
65 |
66 | :::
67 |
--------------------------------------------------------------------------------
/docs/week-1/coding-assessments/dsa-tips.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 3
3 | ---
4 |
5 | # DS&A Tips
6 |
7 | When you're taking online assessments or doing live coding interviews, you might think that the only thing that matters is whether or not the test cases pass. In some cases, this is true. But most of the time, the company is less interested in the solution and more interested in _how you arrived at it_. 🧠
8 |
9 | You have to prove:
10 |
11 | - You understand the question
12 | - You understand the solution to the question
13 | - You understand that there are multiple approaches (and what the tradeoffs are)
14 |
15 | Luckily, there are frameworks you can use that make it MUCH easier to hit all these points. We'll go over one in this lesson called REACTO.
16 |
17 | ## What is REACTO?
18 |
19 | REACTO is an acronym.
20 |
21 | **R** - Repeat the question
22 | **E** - Examples
23 | **A** - Approaches
24 | **C** - Code
25 | **T** - Test
26 | **O** - Optimize
27 |
28 | It outlines a simple path for you to follow as you tackle any algorithm-style question, whether it's in an online assessment or during a live technical interview.
29 |
30 | If you follow the steps, you'll give yourself a great chance at not only successfully answering the question, but also clearly showing your thought process.
31 |
32 | Watch the video below to get a complete breakdown of the framework.
33 |
34 |
35 |
36 | And then read the [full article from Fullstack Academy](https://www.fullstackacademy.com/blog/whiteboard-coding-interviews-a-6-step-process-to-solve-any-problem) for even more information.
37 |
38 | ## Additional tips
39 |
40 | Aside from following the REACTO framework, here are a few other things you can do to put yourself at an advantage and help you stand out from other candidates.
41 |
42 | ### Comment your code
43 |
44 | This tip gets tossed around all the time but we _rarely_ see anyone actually do it. As you solve algorithms for online assessments, write descriptive comments about what you're doing and why.
45 |
46 | This helps code reviewers understand your decision making. And if you ever have to revisit, explain, or defend your code later on then these comments will make it much easier for you to remember your own thought process.
47 |
48 | ### Solve first, optimize second
49 |
50 | A lot of candidates get hung up trying to figure out the most optimal solution.
51 |
52 | And then they run out of time.
53 |
54 | As you try to pass online assessments, your first goal should be to **solve the problem and get the test cases to pass.** Even if you have to brute force it.
55 |
56 | For online assessments, a 10/10 brute force solution is better than a 0/10 unfinished solution.
57 |
58 | If you're in a live interview, ask your interviewer for their preference. They might prefer that you spend the entire time working toward the optimal solution -- but some might prefer that you get the test cases to pass and then spend the remainder of your time talking about alternative approaches.
59 |
60 | There's no one-size fits all answer because all interviewers are different, but you can't go wrong if you're friendly and communicative.
61 |
62 | Above all, don't get frustrated! Stay calm, cool, and collected even in the face of pressure. Remember, you're trying to show your interviewers that you'll make a great teammate.
63 |
64 | ### Use descriptive variable names
65 |
66 | Descriptive variable names make your code more human-readable.
67 |
68 | This makes it easier for an interviewer (or for your future self) to follow the logic of your code as they read through it.
69 |
--------------------------------------------------------------------------------
/src/css/custom.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Any CSS included here will be global. The classic template
3 | * bundles Infima by default. Infima is a CSS framework designed to
4 | * work well for content-centric websites.
5 | */
6 |
7 | /* You can override the default Infima variables here. */
8 |
9 | @import url('https://fonts.googleapis.com/css2?family=Barlow:ital,wght@0,400;0,600;1,400&display=swap');
10 |
11 | :root {
12 | --ifm-color-primary: #000;
13 | --ifm-color-primary-dark: #000;
14 | --ifm-color-primary-darker: #000;
15 | --ifm-color-primary-darkest: #000;
16 | --ifm-color-primary-light: #000;
17 | --ifm-color-primary-lighter: #000;
18 | --ifm-color-primary-lightest: #000;
19 | --ifm-code-font-size: 80%;
20 | --ifm-font-weight-bold: 600;
21 | --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
22 | }
23 |
24 | /* For readability concerns, you should choose a lighter palette in dark mode. */
25 | [data-theme='dark'] {
26 | --ifm-color-primary: #25c2a0;
27 | --ifm-color-primary-dark: #21af90;
28 | --ifm-color-primary-darker: #1fa588;
29 | --ifm-color-primary-darkest: #1a8870;
30 | --ifm-color-primary-light: #29d5b0;
31 | --ifm-color-primary-lighter: #32d8b4;
32 | --ifm-color-primary-lightest: #4fddbf;
33 | --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
34 | }
35 |
36 | /* Custom CSS */
37 |
38 | hmtl,
39 | body,
40 | h1,
41 | h2,
42 | h3,
43 | h4,
44 | h5,
45 | h6,
46 | a {
47 | font-family: Barlow;
48 | -webkit-font-smoothing: subpixel-antialiased;
49 | }
50 |
51 | a {
52 | text-decoration: underline;
53 | }
54 |
55 | a:hover {
56 | font-weight: 600;
57 | }
58 |
59 | a.card {
60 | text-decoration: none;
61 | }
62 |
63 | code {
64 | padding: 2px 4px 3px;
65 | }
66 |
67 | .footer {
68 | background-color: #FFF;
69 | border-top: 1px solid rgba(0, 0, 0, 0.1);
70 | margin: 0 auto;
71 | max-width: 1140px;
72 | padding: 3rem 0 2rem;
73 | width: 100%;
74 | }
75 |
76 | .footer .container {
77 | padding: 0 1rem;
78 | max-width: 100%;
79 | }
80 |
81 | .footer a {
82 | color: #000;
83 | }
84 |
85 | .footerLogo {
86 | width: 100px;
87 | }
88 |
89 | .menu__link,
90 | .table-of-contents__link,
91 | .breadcrumbs__link,
92 | .navbar__link,
93 | .footer__link-item,
94 | .pagination-nav__sublabel,
95 | .pagination-nav__link--next,
96 | .pagination-nav__link--prev {
97 | text-decoration: none;
98 | }
99 |
100 | blockquote {
101 | padding: 1rem;
102 | background-color: #f6f6f2;
103 | }
104 |
105 | .pad {
106 | margin: 2rem 0 1rem;
107 | }
108 |
109 | .theme-doc-markdown,
110 | .theme-doc-footer {
111 | max-width: 75ch;
112 | margin: 0 auto;
113 | }
114 |
115 | .btn {
116 | display: inline-block;
117 | margin-top: 1rem;
118 | padding: 1em 2em;
119 | font-size: 15px;
120 | color: #fff;
121 | background-color: rgb(0, 0, 0);
122 | border: none;
123 | border-radius: 4px;
124 | cursor: pointer;
125 | outline: none;
126 | text-decoration: none;
127 | }
128 |
129 | .btn:hover {
130 | background-color: #32ebbe;
131 | color: #000;
132 | font-weight: normal;
133 | text-decoration: none;
134 | }
135 |
136 | .footer__bottom.text--center {
137 | text-align: left;
138 | }
139 |
140 | .footer__copyright {
141 | font-size: 12px;
142 | }
143 |
144 | .navbar__inner {
145 | margin: 0 auto;
146 | max-width: 1140px;
147 | }
148 |
149 | .navbar__toggle {
150 | position: absolute;
151 | right: 8px;
152 | }
153 |
154 | iframe {
155 | margin: 1rem 0;
156 | }
157 |
158 | @media (max-width: 996px) {
159 | .footer .footer__col:nth-child(2) {
160 | display: none;
161 | }
162 | }
163 |
164 | @media (min-width: 1440px) {
165 | .container.narrow {
166 | max-width: 600px;
167 | }
168 | .navbar__inner, .footer {
169 | max-width: 1320px;
170 | }
171 | }
--------------------------------------------------------------------------------
/docs/week-2/whiteboarding/whiteboarding.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 1
3 | ---
4 |
5 | # What is whiteboarding?
6 |
7 | Whiteboarding is where you write on a board (in real life or online) to demonstrate your problem-solving skills without actually running code. You’ll be working live in front of a technical interviewer. These engineers want to learn about how you think, how you communicate, and your process for tackling difficult problems.
8 |
9 | The purpose of this style of interview isn’t to make sure that your code is running perfectly (I mean...you can’t run code that’s hand-written on a whiteboard, right?) Instead, the engineers are focused on your problem-solving skills and approach. They want to learn how you think when you’re faced with difficult situations or new problems.
10 |
11 | ## Recommended Steps
12 |
13 | Here are our recommended steps to follow in your whiteboarding interview, regardless of the challenge type.
14 |
15 | 1. **Repeat the question.** Make sure you do understand the problem.
16 | 2. **Ask clarifying questions** to ensure you’re on the right track in solving the problem
17 | 3. Come up with your **approach** to the problem. Usually, you can use brute force first.
18 | 4. **Think out loud** - share your process.
19 |
20 | There are 2 major types of challenges you might do during a whiteboarding interview - algorithms or system design.
21 |
22 | ## Algorithms
23 |
24 | You might get asked Leetcode-style algorithm questions and then have to solve them on an actual whiteboard by hand-writing code.
25 |
26 | Here are some helpful tips that you should add to the recommended steps above.
27 |
28 | 1. Get insights by **writing out examples**. Make a 2-column table with the input on the left and the output on the right.
29 | 2. Write a code outline using **pseudocode** to demonstrate your approach.
30 | 3. Make sure your code **accounts for the example cases** you came up with above.
31 | 4. **Optimize** the (time & space) complexities of your algorithm.
32 |
33 | ## On-site vs Virtual
34 |
35 | Whiteboarding interviews have changed a lot over the past few years, so let’s go over the two different types you might run into.
36 |
37 | 1. **The on-site whiteboarding interview**
38 |
39 | This is where you’re actually in the room with a couple of engineers from the company that you’re interviewing for.
40 |
41 | 2. **The virtual whiteboarding interview**
42 |
43 | During the pandemic, lots of companies have moved away from on-site interviews in favor of remote. As a result, whiteboarding interviews have changed quite a bit.
44 |
45 | - Physical whiteboards have been replaced by text editors with live screen sharing (like Google Doc, HackerRank, etc.)
46 | - The free-form space of a canvas is often replaced with constrained text editors, and so you’ll have to express yourself more through text than through hand-drawn diagrams.
47 | - In-person meetings have been replaced with video calls. (Refer to the “Remote Interview Checklist” module from Week 1 for tips on how to make a good impression on a video call.)
48 |
49 | Find out which tools you'll be using for your interview ahead of time. If you need to use a tool like [Miro](https://miro.com/), you'll want to have created an account to log in and try making charts and writing text.
50 |
51 | :::tip Resources
52 |
53 | There are lots of great videos on Youtube about whiteboarding interviews. Google freely to learn and absorb the internet wisdom! And here are a few great links to start with.
54 |
55 | - [Sample Whiteboard Coding Interview Questions (Youtube)](https://www.youtube.com/watch?v=cTuHz7uSq7M)
56 | - [The Best Whiteboard Interview Advice I Ever Received](https://hackernoon.com/the-best-whiteboard-interview-advice-i-ever-received-3ebbfa72e4a)
57 | - [A 6 Step Process to Solve Any Whiteboarding Problem](https://www.fullstackacademy.com/blog/whiteboard-coding-interviews-a-6-step-process-to-solve-any-problem)
58 |
59 | :::
60 |
--------------------------------------------------------------------------------
/docs/week-2/general/know-your-audience.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 1
3 | ---
4 |
5 | # Know Your Audience
6 |
7 | One of the worst things you can ask during your interview is, “what do you do here?”
8 |
9 | **_Seriously?!_** 😱
10 |
11 | If you don’t even know what the company does, it means you don’t really care about that role, that employer, or your future. This is just one of many places you’re applying to and it’s going to be “just a job” for you. Tech companies don’t want to hire that person.
12 |
13 | But it’s not just during the interview where you really need to know your audience. It’s true for your resume, for any presentations, for pair sessions...pretty much at every step of the process.
14 |
15 | Stand out by being prepared, passionate, and, honestly, just giving a damn about your own success! 😄
16 |
17 | ## Preparation Tips
18 |
19 | Before your interviews, do everything you can to put yourself in a position to succeed.
20 |
21 | - Research your industry and narrow down your list of target companies.
22 | - Spend time tailoring your resume to companies on your target list.
23 | - Reach out to people who work at your target companies.
24 | - Look through your network for potential referrals.
25 | - Directly message hiring managers and tech recruiters for the open role.
26 |
27 | ### Customize your resume
28 |
29 | Draw from your primary template that has everything on it to include *only what’s relevant* to the role and company you’re applying for.
30 |
31 | Modify your resume summary, if needed, so it screams out that you’re a great fit for the role. It might seem like a lot of extra work, but you'd be surprised how fast recruiters can reject a resume.
32 |
33 | They’re looking for reasons why candidates are not a fit as much as reasons why they might fit since there are often so many resumes to screen.
34 |
35 | ### Know the company
36 |
37 | Research what the company does and know that going into your interview.
38 |
39 | Understand what your role on a specific team means to the company. Also, most companies have a page that shows off their mission and values. Be aware of these values and think of ways to incorporate them into your STAR answers to common interview questions (this might even be required like it is with the Amazon interview process).
40 |
41 | ### Learn who will be present at each interview stage
42 |
43 | If you’re giving a presentation, definitely try to learn who you’ll be presenting to. You can ask the recruiter you're in touch with to share this info.
44 |
45 | Are they technical? What goals do they have? Maybe you’re meeting with the VP of Engineering for a technical interview. Look them up on LinkedIn and ask them about their career and how they ended up at the company.
46 |
47 | Oh, and be ready to answer more technical questions about your resume, too. Anything you put on there is fair game for deeper questioning.
48 |
49 | You might not always know ahead of time who will be there at each interview stage, but you can find out at the start of the conversation with them. Pay attention to who they are and speak directly to them in their role and function at the company.
50 |
51 | Just like you want to be seen and valued, so do your interviewers.
52 |
53 | ### Add value
54 |
55 | Show that you care by thinking of solutions to potential problems. Build a mini-app that solves a pain point or addresses negative customer feedback. Write a blog post about how amazing the company is and how you've adopted their tech stack for your own personal projects.
56 |
57 | Do everything you can to show that you care about a company and share their values.
58 |
59 | :::tip Additional Resources
60 |
61 | Check these helpful guides out for more info on how to research a company.
62 |
63 | - [6 Ways to Research a Company Before Applying](http://www.longwood.edu/career/articles/2020/6-ways-to-research-a-company-before-applying/)
64 | - [The Ultimate Guide to Researching a Company Pre-Interview](https://www.themuse.com/advice/the-ultimate-guide-to-researching-a-company-preinterview)
65 |
66 | :::
67 |
--------------------------------------------------------------------------------
/docs/week-1/screening-calls.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 6
3 | description: Exchanging questions and expectations.
4 | ---
5 |
6 | # Screening Calls
7 |
8 | ## What is a screening call?
9 |
10 | Very often, you'll have to do screening calls with technical or non-technical recruiters. If you're invited to a screening call, it means your resume matched the role criteria they were looking for and now they need to make sure what was on your resume matches reality. 🧐
11 |
12 | These calls might be done by phone, but are more commonly held over a Zoom, or similar. Get that camera ready! They're usually around 30 minutes long.
13 |
14 | ## What questions can you expect?
15 |
16 | If you get a non-technical recruiter, they'll know all the jargon and the right languages and frameworks to ask about your experience with, but the conversation won't go super deep into technical topics.
17 |
18 | If you get a technical recruiter, they might go a few questions deeper into things you've shared in your resume. "What precisely was your role in using TensorFlow on this project?" "Do you prefer React Native or Swift for iOS apps?" Etc.
19 |
20 | The goal for you in these calls is to answer all their questions and proceed on to the next stage of their interview process.
21 |
22 | **Here are some questions you’re likely to get:**
23 |
24 | - Tell me about yourself. (btw, this is the #1 most common interview question, so you should definitely have a good answer prepared!)
25 | - Do you have any questions about the role?
26 | - What most excites you about the chance to work at [company]?
27 |
28 | ## How to get ready for a screening call
29 |
30 | Here’s what you can do to go in prepared.
31 |
32 | ### 1. Practice ahead of time
33 |
34 | Pick a project on your resume and record yourself explaining it out loud.
35 |
36 | When you review your recording, think about areas that were difficult to explain clearly and concisely.
37 |
38 | Ask yourself:
39 |
40 | - How can I explain this in terms that anybody can understand?
41 | - What are the key points I'm trying to communicate?
42 | - How can I shorten this explanation while still getting the point across?
43 | - Would a person without technical knowledge be able to follow your thought process?
44 |
45 | ### 2. Answer honestly
46 |
47 | You'd be surprised how often we've heard recruiters say that they've caught a candidate stretching the truth about their experience or their specific role in working on a project. Don't do that! It's a huge red flag because it creates trust issues and makes it hard to tell what your actual skills are.
48 |
49 | It's always smart to be honest about your experience. And you can trust that your interviewer will ask you questions about things on your resume, so be prepared to answer those questions.
50 |
51 | ### 3. Bring your own questions
52 |
53 | > “Do you have any questions for me?” - Your interviewer 🎤
54 |
55 | This isn’t a trick question!
56 |
57 | Use this time as an opportunity to express your interest in the company and the specific role. In fact, if you don't have any questions, it can feel to the recruiter like you're not really interested in this particular job or company.
58 |
59 | Ask genuine questions. Here are some sample topics you might want to dive into.
60 |
61 | - What are the company's mission and values?
62 | - What resources are available to employees?
63 | - How does the interview process work?
64 |
65 | Do your own research into the company and ask questions that matter to you. This is an excellent chance for you to make sure that the company is a good match for you and is somewhere where you can grow and succeed. ✅
66 |
67 | Lastly, just know that sometimes recruiters don't work inside of the company they are interviewing for, so they might not even have all the answers to your questions. As always, be polite, professional, and patient and you can't go wrong.
68 |
69 | :::tip Bonus resource: Questions to ask
70 |
71 | Select a 1-5 questions from the reference from The Muse below (there are over 50 to choose from!)
72 |
73 | [51 Interview Questions You Should Be Asking](https://www.themuse.com/advice/51-interview-questions-you-should-be-asking)
74 |
75 | :::
76 |
77 | Feeling good about your ability to ace the screening interview? Awesome! Let’s move on to the next section.
78 |
--------------------------------------------------------------------------------
/docs/week-2/take-home-projects.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 4
3 | description: Coding from the comfort of your home.
4 | ---
5 |
6 | # Take Home Projects
7 |
8 | Companies will occasionally ask you to do a take-home project as a way to see how you perform in a context more like actual work than coding assessments.
9 |
10 | These projects are usually short coding tasks that you can complete by yourself outside of the interview context.
11 |
12 | The best ones are time-boxed to an hour or two, but sometimes they might even take days (there are plenty of unhappy developers griping about those ones!)
13 |
14 | Take-home projects do offer a few benefits over traditional coding assessments.
15 |
16 | - **You can complete the task in your own time.** Assessments can be stressful because of the strict time limit, but take-home projects let you work at your own pace. Want to stop and eat tacos halfway through? No problem! 🌮
17 | - **You can show employers a realistic work sample.** Take-home projects give candidates who haven’t memorized algorithms a chance to show off their creative thinking and their ability to code.
18 | - **You can stand out from others.** Look into a company’s style guide or coding conventions and use them in your take-home project! This will show the company that you’ve done your research and demonstrate your ability to go above and beyond.
19 |
20 | Most take-home projects are designed to test you on a particular skill. For example...
21 |
22 | - A frontend project might ask you to take a Figma design and turn it into a pixel-perfect website using HTML, CSS, and JavaScript.
23 | - A backend project might be to build an API backend using Express.js.
24 | - A DevOps project might challenge you to deploy a containerized application to AWS.
25 |
26 | ## Tips
27 |
28 | Here are some tips to knock your take-home projects out of the park.
29 |
30 | ### Keep it simple
31 |
32 | You might be tempted to do more than is asked of you. Don’t let feature-creep derail your project. Follow the guidelines that you’re given and don’t add unnecessary work for yourself.
33 |
34 | Remember that frontend project example above? You might have a great idea about how to improve the design or UI, but it would be a bad idea to implement those changes in this challenge.
35 |
36 | Instead, create the pixel-perfect site that they asked for and just share some comments about the possible UI improvements. This will show that you can do the task at hand but also signal that you’re thinking about the bigger picture and capable of adding value. That’s a win-win! 🤝🏾
37 |
38 | ### Leverage frameworks
39 |
40 | These days there are frameworks and open source libraries for tons of functionality. You can lean on these tools for your take-home projects so you don’t have to build everything from scratch.
41 |
42 | Besides, most tech companies use (or maybe sometimes even create) these same libraries, so you’ll be demonstrating your proficiency and efficiency.
43 |
44 | ### Make a list of edge cases before you code
45 |
46 | Don’t get rejected because of simple edge cases breaking your code.
47 |
48 | - What happens when you hit the search button with no input?
49 | - What about when you insert a special character?
50 | - Resizing the browser window?
51 |
52 | **Don’t let that stuff break your project!** List out the common edge cases before you even start coding, and you’ll be sure to cover those as you build.
53 |
54 | ### First prototype, then build it out
55 |
56 | You might risk not completing your project at all if you try to make everything perfect from the start. Instead, get the big pieces of functionality working first, then loop back around for all the other details. If you need to build a frontend and a backend, just get the backend working first.
57 |
58 | ### Add documentation
59 |
60 | One thing your potential employer will be looking for is that you can write clean, well-documented code since that’s such an important skill to work well on a team.
61 |
62 | The README file is a place for you to show that you’re organized and can communicate well.
63 |
64 | - What does the app (or similar) do?
65 | - How do you run it?
66 | - What were the big design decisions you made?
67 | - What are some areas for improvement?
68 |
69 | And don’t forget to write inline code comments, too, where it’s helpful.
70 |
--------------------------------------------------------------------------------
/docusaurus.config.js:
--------------------------------------------------------------------------------
1 | const lightCodeTheme = require('prism-react-renderer/themes/github');
2 | const darkCodeTheme = require('prism-react-renderer/themes/dracula');
3 |
4 | const config = {
5 | title: 'Tech Interview Prep Guide by Speak_',
6 | tagline: 'PA free resource to help you ace your tech interviews.',
7 | url: 'https://.pages.dev',
8 | baseUrl: '/',
9 | onBrokenLinks: 'throw',
10 | onBrokenMarkdownLinks: 'warn',
11 | favicon: 'img/favicon.ico',
12 | trailingSlash: false,
13 | i18n: {
14 | defaultLocale: 'en',
15 | locales: ['en'],
16 | },
17 | presets: [
18 | [
19 | 'classic',
20 | ({
21 | docs: {
22 | sidebarPath: require.resolve('./sidebars.js'),
23 | editUrl: 'https://github.com/speakcareers/tech-interview-prep-guide/tree/main/',
24 | },
25 | theme: {
26 | customCss: require.resolve('./src/css/custom.css'),
27 | },
28 | }),
29 | ],
30 | ],
31 |
32 | themeConfig:
33 | ({
34 | navbar: {
35 | logo: {
36 | alt: 'Speak_ Logo',
37 | src: 'img/speak-logomark-256.jpeg',
38 | },
39 | items: [
40 | {
41 | href: '/',
42 | position: 'left',
43 | label: 'Tech Interview Prep Guide',
44 | },
45 | {
46 | to: '/docs/welcome/about-this-guide',
47 | label: 'Read the guide',
48 | position: 'right',
49 | },
50 | {
51 | to: 'https://speak.careers',
52 | label: 'Join a cohort',
53 | position: 'right',
54 | },
55 | ],
56 | },
57 | footer: {
58 | style: 'light',
59 | links: [
60 | {
61 | items: [
62 | {
63 | html: `
64 |
65 |
Answer: Yes.
25 |26 | You might already have a fantastic resume, and that’s great! But you must use the Speak_ Resume Template to be considered by our partner companies. 27 |
28 |29 | This is because we work directly with our partner companies to help them find talented engineers, and having a standardized resume format makes it super easy for them to look through resumes quickly. 30 |
31 |Answer: It’s okay to have a 2-page resume as long as the content supports the length!
42 |You should not eliminate important content from your resume simply to keep it to 1-page.
43 |If you keep it to 1-page, great. But 2 page resumes are a-okay, too. And in many cases they’re necessary to show off all of the incredible skills that you have.
44 |Answer: You should include professional work experience, especially if you are making a career transition. But you should not include completely irrelevant work like barista, cashier, retail salesperson, or server.
55 |If you worked in an office and did most of your work on a computer, then you should include that work — even if it isn’t software engineering.
56 |If you worked at a fast food restaurant to pay your rent while you went to college, you should not include that.
57 |Answer: Yes. If you do not have anything to include in a section then you may remove it. However, every section that you remove decreases the strength of your resume.
68 |Instead of removing a section, we recommend working hard to fill in the holes on your resume.
69 |For example, if you don’t have projects, then spending time working on 2 high-quality projects would be an excellent use of your time.
70 |Twice a month for over a year, Speak_ has run a free cohort-based course that helps software engineers get prepared for their tech interviews at any company. This is the guide that grew out of our learnings from running those cohorts.
40 |Designed to introduce all the possible challenges you might face in a tech interview, this guide can help you know what to expect and how to prepare.
41 |We decided to open source it so that anyone can get access to this knowledge and so our community can take an active part in improving the content. This helps us grow our talent base, and allows us to support more qualified underrepresented candidates in finding jobs, which is our mission.
42 |
49 | Preparing for tech interviews is hard. You don’t have to do it all by yourself though. Join your peers in a 2-week cohort-based course to sharpen your hard and soft skills. It’s totally free — no strings attached.
68 |Speak_ Tech Interview Prep cohorts include:
69 |