tldr; Supplement your studying with mock interviews
Everyone knows that you need to know data structures and algorithms for coding interviews, but sometimes people neglect the other key skills required to land the job. In this post I’ll break down what these skills are, offer some guidance on how to get started, and share a resource for free mock interviews.
Key skills to develop
A common thing that sinks interviews is getting nervous. When the nerves kick in, you don’t inspire confidence, your communication becomes muddled and it becomes harder to come up with the right solution.
Doing a mock interview can get you used to the social pressure of figuring out a challenging coding problem in front of another human. As a software engineer, there is limited interaction with co-workers throughout the day. Before I worked at Facebook, I was a software engineer at a mid-sized tech company. I would only have 1-2 meetings a week with my team to talk about my code and get feedback. Even then, I was not questioned or asked to explain my thought process behind the code.
The first few programming mock interviews are a chance to work through the social awkwardness of coding and talking through a problem with another person. I know it will be strange at first, but I promise it gets easier.
After you conduct 5-10 of these and add some structure to how you digest problems, you will start to notice the nerves subsiding.
Getting stuck sucks. The feeling of not knowing what to do next in an interview can be handled in a few different ways. Unfortunately, people tend to default to freezing up and getting nervous. In moments like this, it’s helpful to recognize you are stuck and to start asking questions to help clarify the problem.
This can be a scary part of the actual interview, so learning how to handle it during the interview practice is key. Because this is a mock interview, it is an opportunity to understand how you react in these situations and learn from them. If you freeze up, this is a chance to practice asking questions. If you ramble, practice taking deep breaths when you get stuck. Remember this is a part of your interview preparation for a reason and try to push through the uncomfortable feelings instead of just giving up.
The more you practice mock interviews, the better you will handle that terrible feeling of getting stuck.
Explaining your thought process
You can quickly write down a 100% perfect algorithm for a difficult problem and still not get the job at Google. This goes into why I firmly believe that just grinding leetcode and Cracking the Coding Interview is not good advice for someone trying to get into Big Tech. During the actual interview, the Microsoft engineer interviewing you wants to know you understand the fundamentals versus just memorizing an answer to a problem.
This is done by giving a detailed explanation as to what you are thinking. This is uncomfortable for engineers who are used to listening to lofi beats and skipping steps in their head. Talking through what you are thinking in a professional and detailed manner takes practice. When I was at Facebook, I frequently conducted programming interviews. What made candidates great was their ability to take their time as they code and let me know what they are thinking.
Doing mock interviews will help you develop this muscle really quickly as you are preparing for the technical interview.
Hitting all of the key steps in the interview
You should be inspecting and reviewing every single programming interview you do. Inspecting is analyzing the problem at the top, reviewing is ensuring your work is correct after you think you are done coding. Leetcode questions don’t force you to write out your analysis of the problem and they don’t encourage you to manually test your work.
Be sure to check all of the boxes in this rubric when doing mock interviews to show your interviewer you are thorough in your work and serious about your preparation. This will stand out to tech companies.
Handling combative interviewers
Sometimes it can feel like your interviewer is being aggressive, and it can really throw off your performance. Usually, when you feel this, it doesn’t mean they hate you and that your interview is over. It just means that they are either looking for clarification or are prodding you in a certain direction.
I’m not defending their behavior, I’m encouraging you to learn to handle different interviewer personalities by conducting lots of mock interviews. You never know what type of software engineer you will get from these tech companies and you don't want to be surprised by your interviewers.
Asking clarifying questions
When you are solving a problem on leetcode you can’t ask the computer any questions. Asking clarifying questions is a super imperative skill to develop for a real interview. Creating a dialogue with your interviewer during the real interview keeps them engaged and makes them look at you as a peer if you are asking the right questions. When your interviewer looks at you like a peer versus just another one of the candidates they are interviewing, it helps you stand out. They see you as a fellow colleague and someone that they could work alongside in a professional setting.
Having someone else on the other side of the call during the mock interview is going to help you develop this skill.
The goal here is to get you into a place where you feel comfortable in the worst-case scenario. Imagine you are walking into Microsoft, going through 4 or 5 technical interviews, getting very difficult problems, getting stuck, and having interviewers who are not incredible communicators. You need to prepare for the worst and hope for the best.
This may feel like a lot of interview preparation outside of nailing the fundamentals, but this can make or break you during the interview.
Don't forget to ask for feedback at the end! Your interviewers just spent a good amount of time learning about you and your skills during the mock interviews. This is a chance to get free feedback from a fellow software engineer.
Ask them to be really honest about the session and share any tips that could be helpful for you to progress.
Mock interviews are painful for lots of people(including me). You are more than likely to absolutely bomb your first 5. Remember: This is normal. Doing a mock interview and putting yourself out there can be daunting, but the more you get comfortable with it now the better the actual interview will be. Remember, you want to get the bad, practice interviews out of the way before you enter the real one.
After a few mock interviews, you will feel yourself getting more comfortable in the environment. You’ll be able to better articulate your thoughts, identify and handle different interviewer types, realize getting stuck is normal, ask intelligent clarifying questions, and remain composed when the nerves kick in.