Mock interviews are a great tool for developing critical soft skills for your Big Tech interviews. If done properly, they can also help you "unstuck” yourself on difficult topics.
In a separate article, we talk about why mock interviews are important.
Today, we will review how to get the most value out of your mock interviews as an interviewer and an interviewee.
As an interviewee
As an interviewee, your goal is to solve the problem as quickly as possible while articulating your thought process. Along the way you will analyze the problem, write cohesive code, and review with test cases. Here are some tips to help you extract value as an interviewee:
Request a relevant problem
If you’re in the early days of your interview journey, it’s best to request a problem from an area you’ve already studied. While eventually you will want to start getting random questions, you won’t be getting the maximum value out of a mock if you have no idea where to start on a topic you’ve never reviewed.
After you’ve developed a basic understanding across the board, it’s best to stop requesting topics. A big part of interviewing is learning how to take an ambiguous problem and make sense of it in your head. Getting random questions will help you build this muscle and prepare you for the actual interview.
Don’t break character
It’s common for people new to mocks to break persona by cracking jokes and throwing personal disclaimers around. Doing this usually results in your interviewer also breaking character, which pulls you farther away from what the actual interview will be like.
It’s important to learn how it feels to get stuck and how it feels to struggle with a complex problem. Breaking character alleviates that pain, and benefits no one. These types of situations are raw and uncomfortable, but by doing more and more mock interviews, it gets easier.
Adopt some structure
Adding structure to your interviews helps you focus your energy where it matters. You can develop your own structure and style depending on what works for you. Here is the structure I used when preparing for interviews: Algorithm Grading Rubric
Ask to hear your feedback
Always ask your interviewer to share their raw feedback. Reading critical feedback doesn’t hit as hard as someone telling you to your face you suck at runtime analysis. They should still submit feedback in written form within 24hrs, but getting it in verbal form immediately is the best way to help it stick.
Don’t use a fancy code-editor
You aren’t guaranteed to have autocomplete, syntax highlighting or easy indentation during your interview. Prepare for the worst and hope for the best. Use a google doc to write your code during mocks.
Try to set a recurring time on the calendar.
If you and your interviewer hit it off, setup a recurring calendar event and conduct mock interviews with the same person every week. There is a tangible benefit to working with the same person week over week who learns your quirks and will help give you solidified feedback.
It is good to also schedule mocks with people you haven’t worked with before, learning how to handle different interviewer personality types is a skill in itself.
Fail hard and fast
Especially when you are first starting out, you will fail many mock interviews. They can be uncomfortable and really challenge you to face your struggles head-on. Embrace this as you practice and take time to learn from your mistakes. It’s rare for anyone to pass their first 5-10 mock interviews. You want to get the bad ones out during practice so that when you get to the real one, you are confident, calm, and ready.
As an interviewer
As an interviewer, your goal is to recreate the interview environment for your interviewee. It takes a little bit of preparation, but effectively conducting mock interviews will actually help make you a better interviewee as well!
Learn a problem deeply
Try to deeply understand a question before asking it. Reading the leetcode solution once usually isn't enough. You should be able to explain the intuition behind the solution, the path from brute force to optimal, and the runtime/space complexities. This has the added benefit of giving you expertise on a problem.
Try to identify ahead of time where you think someone might get stuck, and create a list of hints that are increasingly more obvious to help them get un-stuck. Candidates usually get stuck in the same places, identifying those spots helps you give great hints and helps you get better at receiving hints. Try thinking of where you got stuck when you first tried solving this problem and what information you were missing.
Pick a relevant problem
You will want to pick a problem that is aligned with how prepared the interviewee is. If they just started studying a few weeks ago, it doesn’t make sense to give them a DP problem. Conversely, if they are consistently solving leetcode hards, it doesn’t make sense to ask them how to find the largest element in an array.
Give great & honest feedback
Take notes during the interview and deliver them after the call. If the candidate failed to get the right answer, help them understand the intuition behind the problem, where they got stuck, and what they should reach for in the future. It may seem difficult and uncomfortable to give them feedback especially if the candidate failed badly but the more honest you are the more it will help them in the future. This is a chance to help someone grow.
Watch others conduct mocks
If you’ve never conducted a mock before, it helps to watch others! We recorded a few mocks here that you can watch and take notes from.