Quick disclaimer, I typed and erased multiple starting statements before getting down to actually starting this but here goes. You've probably heard multiple stories and advice from people who did interviews and passed. Today let's get some insight from someone who did their interview and failed. I love telling stories and as good storytellers, we don't start our stories halfway; we start at the beginning. This story starts in December 2021 when my friend sent me a job posting for software engineering internships at Microsoft and despite me being almost sure I wouldn't get past the resume screening stage, I still applied because I have always lived by the principle that it's better to try and fail than to never have tried at all. Fast forward to January of the following year when I received an email from the recruiting team that I had in fact passed the resume screening and was moving on to the next stage which involved an interview with a recruiter and a coding test. There are a lot more details about how I got to the final stage but today we're sharing lessons learned and not having an opening-up space. I did my interview on a Wednesday afternoon and what before that day seemed like it would be the longest day of my life actually turned out pretty amazing. What I appreciated throughout the interview was the support and accommodation offered by the Microsoft recruiting team. We had a call a week before the interviews and were taken through what to expect and had all our questions answered. The final interview involved four forty-five-minute interviews with software engineers at Microsoft ADC. I was surprised by just how fast time flew by and within four hours I was all done with my interviews. The long-awaited email arrived the following Monday and yes, I was crushed. I will not sugarcoat that. I know you opened this article to get lessons that you can apply to your own interview prep so let's have at it: I will split the lessons into what you can do before, during, and after so we can have order and clarity of thought.
Before the interview
1. Work on your resume.
For you to get the chance to show the company why they should hire you in the interview space, you have to get past the resume screening stage. Before companies open up their internship slots, work on projects, contribute to open sources, volunteer; all of that jazz, to make sure your resume stands out.
2. Get good with your data structures and algorithms.
(A quick disclaimer that this is for companies that have coding interviews. Research the company you're interviewing for and find out what the interview entails. Glassdoor is a good starting point for this kind of research.) You've probably heard this multiple times but I'm going to repeat it for emphasis😂. Get good with your data structures and algorithms. There are numerous platforms to learn and use while preparing for your interview. You can check out Leetcode, Hackerrank, GeeksforGeeks, Codility, and so many other resources. I've mentioned the ones I used but if you have a resource you have found helpful while interview prepping, comment it down below. Books are also a great way to learn. I loved Cracking the coding interview by Gayle Laakmann and Elements of programming in Python by Adnan Aziz, Tsung-Hsien Lee, and Amit Prakash. Finally, the earlier you start, the better.
3. Mock interview.
I cannot emphasize this enough. Mock interview as much as you can with friends, and employees who work at the company you want to work at(Connect with them via LinkedIn and ask for help. People are more willing to help than we think). Mock interviews help you polish on your communication skills while coding because remember you'll be working through the code with your interviewer. For this, also check out Pramp
From one of my mock interviews is where I learned the REACTO model of working through coding questions:
- R- Repeat the question in your own words
- E- Give an example
- A- Approach. Here state the approach you will use to solve the question, analyze the memory and run time and mention any constraints.
- C- Code
- T-Test
- O-Optimize
Know your resume inside out
Make sure that there is nothing indicated on your resume that you cannot explain. Interviewers are likely to ask you questions on your resume. Ensure you are in a position to answer those and any other behavioral questions.
During the interview
You are likely going to have pre-interview jitters. This is absolutely normal and expected. Remember that your interviewer is there to help you work through the code and you're interviewing the company just as much as they are interviewing you.
1. Communicate
It's normal to start coding and get super focused on writing out your code and forget to tell your interviewer what you are doing but with enough mock interviews, you'll be able to work through this. It is absolutely okay not to know how to solve a question. The key is to keep talking and brainstorming with your interviewer as you work around to getting a solution
2. Have good questions to ask the interviewer.
Having questions to ask the interviewer shows you have an interest in the company. It's a good idea to think about these questions before you enter the interview space and the best thing is, there are so many questions on the internet that can help guide you through this.
After the interview
Whether or not you get an acceptance or redirection email(yes, that's what I call them😂), make sure to send a thank you email to your recruiter. In the case of a redirection email, make sure you ask your recruiter for feedback from your interviews because this is not the last interview you're going to do. Learn from your mistakes so you can perform better in your next one.
Finally, never lose hope. Remain consistent with your craft and one day, it'll be your turn.