In this Medium Post, we’ll describe general interview preparation techniques for the tech industry, that apply to all interviews (coding, system design, behavioral, etc.). We’ll cover 4 specific areas: (A) planning & scheduling logistics, (B) self-studying, (C) practice interviews (D) day before and day of. Finally I’ll include additional medium posts I’ve written regarding preparation for specific interview types (e.g. frontend coding, backend coding, etc.).
Note: this guide is intended for interviews that are scheduled over VideoChat, thought some of it may apply to in-person over-the-table interviews as well.
Planning & Scheduling Logistics
Depending on how well you’re prepared, you’ll want to optimize how you plan for and schedule your interviews.
Day of the Week
Pick a day of the week that you tend to do better on interviews.
Time of the Day
Some people are more alert in the morning vs. the afternoon. Select a time of the day that optimizes for your own performance.
Split across multiple days
If you have a full 5+ hours of interviews, I highly recommend that you split them across multiple days, for two reasons:
- Optimized for your preferred time-of-day. If you’re a morning or afternoon person, you’ll be able to have all your interviews during that time of day.
- Combat interview fatigue. Interview fatigue is a real problem, especially if you stack 5–6 hours of interviews back-to-back.
Block of time around interview
I recommend that you block off the the 45 minutes right before (for warmup) and 30 minutes after (reflect + over) each of your interviews. This means that you shouldn’t have interviews that go back-to-back.
(A) Block off 45 min before each interview. Having 45 min. blocked off on your calendar before the interview starts is extremely helpful. For example, when listing your availability, if you’re actually free at 10:00a, tell your coordinator you’re free starting at 10:45a (so you have 45 min.).
- If you have an existing day job with meetings — those might run late or be particularly intense. Having a solid buffer in between a meeting from your day job and your first interview is helpful to unwind, decompress and change your frame of mind.
- You can use the bathroom, double-check your room’s lighting and figure things out.
- This will give you a chance to do a few interview warmups (see below on warmup section).
(B) Interview Warmups. It’s helpful to warmup for the first 20–30 min. right before your interview. This will help you remove pre-interview jitters and get your in the zone. To do a warmup, do a 1–2 practice questions or “question parts” for the interview by yourself in the same videoconferencing software that you’ll be using for the interview (Zoom, Google Meet, or Cisco Webex) so you can simulate the actual interview.
- If it’s a coding interview, do a quick practice coding problem in the same online IDE (e.g. Coderpad or HackerRank) that your interview will be in.
- If it’s a system design interview, practice talking through the first several minutes of a sample system design problem.
- If it’s a behavioral interview, find 1–2 random interview question and practice physically talking through your answer to those questions.
Just as Steph Curry takes practice shots and Patrick Mahomes makes practice throws before each game, it’s likewise important for you to get your practice reps in before the interview.
(C) Write out custom questions for interviewer. Take the time to write out 3–4 custom questions for the interviewer. The questions should be custom to (1) the company, (2) the role and (3) the interviewer. You have no excuse for not asking an extremely intelligent question of the interview, since this is something you can think about a long time before the interview.
- If it’s a question you can find out by searching online (ex: “when was the company’s last round of funding”) it’s a bad question.
- If it’s a question that could apply to any generic company (e.g. “how does the performance process work?”) it’s a bad question.
For more tips on preparing the right set of questions to ask your interviewer, read this longer post.
(D) Block off 30 min after. Ask your recruiting coordinator or scheduler if you can have 30 minutes break in between interviews if possible. This allows you decompress after the prior interview, use the bathroom and take a break, as well as reflect. Some candidates use this time to meditate, especially if the previous interview was not as successful as you would have liked.
How to self-studying
A good chunk of your interview preparation will involve self-studying and preparing for the interview on your own. In this section, we’ll include a few general tips for doing the self-studying.
Note: at the bottom of this post, I’ll include links for how to prepare for specific interview types (coding, system design, behavioral, etc.).
(1) Understanding Each Interview. Ask the recruiter (or any friends you know at the company) what each of the interviews will be like. Often a recruiter will chat with you on the phone about each of the types of interviews and answer any questions you have. Remember: All things being equal, your recruiter is in your corner and trying to help you get an offer.
- See if your recruiter can verbally discuss what the rubric for the interview will look like (ie. what does a “Strong Hire” vs. a “Weak Hire” look like?
- Ask the recruiter what the common ways candidates have failed the given interview. Your recruiter might tell you something like: “on the coding, candidates often run out of time”, or “for system design, candidates often make their solutions too complicated”. Having this insight will be helpful in your preparation and you can prepare accordingly.
(2) Prioritize what to study. You likely have a really limited amount of time to prepare and study, so don’t try to practice everything. Based on your conversations with the recruiter, focus your preparation on a few key areas. I’ve seen ambitious candidates try to do too much (for ex: they did 600+ Leetcode problems and Designing Data Intensive Applications cover-to-cover), and then fail to get to all of it, and as a result failed to prep the highest probability areas.
(3) Don’t forget to practice soft interview skills. Even for technical or functional interviews, don’t forget to continue to practice your soft interview skills.
- Identify clarifying pausing. For each interview question you’re practicing (whether it’s coding, design or behavioral) practice thinking about and verbalizing which clarifying questions you’d ask for the given question.
- Develop habit of pausing and aligning. As you do an interview, practice pausing part-way through an interview and checking with the interviewer. “Let me pause here and see if you’d like me to go deeper into this area, or move on?”
Doing Practice Interviews
When doing practice interviews (with a practice partner), here are some general tips:
- Simulate the real interview setting as much as possible. This means having the practice interviewer time the interview and use the same time controls as you would in the real interview. This also means using the same tooling (HackerRank, Excalidraw, CoderPad, etc.) that you would in the real interview setting.
- Select a strong practice partner. You’ll want to select a practice partner that is stronger than you are, someone who can give you critical feedback to help you improve.
- Record the sessions and watch them back. Obviously only do this with permission from your practice partner. Recording the session and watching it back is one of the best ways to learn. There are tools you can use to record your computer screen as well as your audio at the same time.
- Generalize learnings, and develop habits. Every time you practice and learn things from the practice session, see if you can generalize those learnings to not just apply to the given interview question or problem. One way to codify the learnings is to try to develop general habits to follow. For example, say you run out of time during an interview session. Instead of simply concluding that you need to get through the problem faster, you could generalize that you need to get into the habit of asking the interviewer how many parts the interview will be, this will help you keep pace with the interview.
More Reading
- Frontend Coding Interviews. How to prepare for a frontend coding interview.
- Backend Coding Interviews. How to prepare for a backend coding interview.
- System Design Interviews. How to prepare for a system design interview.
- Behavioral Interviews. How to genenearlly prepare for a behavioral (or non-functional) interviews.
- Behavioral Interviews: Stories. How to prepare, practice, and tell stories to tell during a behavioral interview.
- Asking Questions of your Interviewer. How to select questions to ask your interviewer.