Cracking Microsoft’s Intern Interview
Who is this Article for?
- If you are curious about what it takes to land an internship as a Software Engineer at Microsoft.
- You have been invited to a first-round interview (phone or school campus) and you want to learn from my mistakes and successes.
- You have been invited to the final-round onsite interview and want insight into how I prepared, my methodology, access to my notes and a detailed account of what it was like.
Who am I?
- I was a Software Engineer Intern at Microsoft’s Redmond Office and have recently begun as a Full-Time employee.
- I was a student at The University of Toronto majoring in Computer Science and Cognitive Science.
- I once asked my partner if I am a competitive person, their response was “No, you put yourself in competitive environments and want to do your best, but you want everyone around you to do their best as well.” And I think that is why I am writing this article, I want you to do your best and if that is an internship at Microsoft then I hope my experience with the process helps.
Why do I think I can help you?
I have been in the application process with Microsoft for several years now. I started off getting my resume rejected time after time. Eventually, I made it to the first-round interview, which I proceeded to fail.
Fast-forward and I had another in-person interview. It went fairly well and I was told that the recruiter liked me but the internship positions were full for that term.
Fast-forward again and I get an email from a different recruiter asking for a phone interview. Around the same time, I get an email inviting me to a final-round onsite interview. The recruiter that liked me but said the internship positions were full had kept me in mind and fast-tracked me to the final round many months later. I was caught completely off guard and I had only 3 weeks to prepare.
I prioritized my studying, I took a different approach than the typical Leetcode grind and when I finally did the Final Round interview I was given an offer the very next day.
After several years of bouncing around Microsoft’s application process, I have experienced doing it all wrong so many times and finally, I found out how to do it right. I think I can help you get it right faster than I did.
All of the advice and thoughts I give are based on my own experiences with Microsoft’s interview process and should not be taken as anything more than a peer trying to help out. Nothing I say is on Microsoft’s behalf.
In this section, I will describe what the steps were in the interview process and what I experienced in each step. Further down in the “How to Prepare?” section I will elaborate on each step and what I did and what I think you should be doing to give yourself the best shot you can.
Microsoft’s interview process is shorter than most I have experienced. It consists of the online application, the first-round interview and the final-round onsite interview.
1) The Online Application
There were no coding challenges, no cover letters (I am so glad, they are the bane of my existence). Just straight to the point. Resume and skills. They have you manually fill out your experience and skills into your Microsoft Careers profile. Often companies use tools to scrape your resume and if it is a slightly different format, you will be passed over even if you are qualified. So this practice of entering in your skills is actually a benefit to you.
The online application is where the odds are against you, Microsoft gets a ridiculous amount of applications. From my experience, if you hear back for a first-round interview this is a very good sign that you have a good future in Software Engineering ahead of you. This means that they like you on paper, they want to hire you and now they just need to double-check that what you have said on your resume adds up in person.
2) First-Round Interview
From my experience, this interview will either be conducted at your university campus in person or over the phone. The interview will be 30 minutes.
The Phone interview
- My interviewer was quite relaxed, she sounded like she was working from home and just wanted to go over a few things with me. I wasn’t asked any overly difficult questions, however, you will need to prepare for it. I had one behavioural question. And then several technical questions. I was not asked to explain any code, rather she was looking for me to clearly communicate my thoughts and verbally explain my algorithms. These questions were not tricky or overly complicated but you need to prepare. They show knowledge in different areas and can give her a red flag if I don’t the difference between a thread and a process, or how a certain sorting algorithm works. I was asked about insertion sort and said: “I have worked more with merge sort and quick sort because they have better runtimes, would it be alright if I explained one of these instead?”. It is okay to not have an answer, just show that you have knowledge in that area.
The In-Person (University Campus) Interview
- This interview focused a little more on behavioural questions and had one technical question which has 2 answers. A non-efficient straightforward answer, or an efficient answer that is harder to come up with. I was asked to write my solution out on a whiteboard. Your interviewer want’s you to succeed so ask questions and they will push you in the right direction. Sometimes they can give you a purposefully vague question to see if you will ask questions.
3) The Final Round Onsite Interview.
Okay, you made it here. This is very very good news. The odds are in your favour, they like you on paper, they like you in person. Now it is time for them to get to know you better, they will ask you a lot of behavioural questions and give you some more challenging technical questions. You don’t have to get them all right. You just need to show that you can think, communicate and that you are someone they would like to work with.
The onsite was one day of interviews and lucky for us, they just made it a lot less intensive. It used to consist of 4 separate 45-minute interviews. Apparently, their data showed that candidates who did well in their first 2 interviews would do well in the following 2. And candidates who did not do well in their first 2 continued to not do well. So they reduced the number of interviews to 2. This means that I had 2 interviews, consisting of 45 minutes each then I had the rest of the day to explore Seattle with my fellow candidates.
If you have made it here, you are done! No more interviews! Microsoft will send you an email within the next 2 weeks letting you know their decision. No matter what the outcome, if you made it this far you have a promising career in Software Engineering ahead of you.
How to Prepare?
Cracking the Coding Interview by Gayle Laakmann is going to be your hero for landing this Internship. For each stage of the application process, I will give you the chapters I recommend reading, as well as templates and topics that I recommend filling out and familiarizing yourself with.
1) Online Application
Emphasize projects, hackathons, and Skills. If you have any past work experience, it is a good idea to elaborate on this in detail. However, don’t worry if you have no previous experience. I met many other candidates in the later stages of the interview process that had no previous experience.
Cracking the Coding Interview.
Behind the Scenes:
- The Microsoft Interview
Before the Interview:
- Getting the right experience
- Writing a great resume
- Preparation map
2) The First Round
A few generic questions that I would prepare for are:
- What is the difference between a process and a thread?
- Explain a time where you had a conflict in your team.
- How does ‘X’ sorting algorithm work and what is its best and worst-case runtime
- A question about graph traversal
- A question about searching in an array. Anytime you need to search, your first thought should be the Binary Search Algorithm. This only works with a sorted array. This means Binary Search is usually paired with your favourite sorting algorithm. I recommend learning mergesort and quicksort inside and out.
Cracking the Coding Interview
- Technical Questions
- How to Prepare
- What you need to know
- Behavioural Questions:
- Interview Preparation Grid
- Know your technical projects
3) The Final Round (onsite)
You are at the final stage, you are feeling the pressure. You want this so bad and you are almost there. Now it is your time to knock the ball out of the park. But here is the thing… there are so many possible questions your interviewers could ask you, how could you possibly prepare for all of them? Well, you can’t. The interviewers are purposefully going to come up with new questions to see how you handle a difficult question when you are on the spot. Some people decide that their life will consist of Leetcode questions for breakfast lunch and dinner until the day of their interview. And honestly, it will probably help, but that is not the path I decided to take. I decided to focus on myself, what was driving me, what are my values and is Microsoft even the right place for me?
Get genuine. Why do you want to work at Microsoft?
When I asked myself this, my answers scared me. The first answer was “Because this is where I should want to work” and “Because they pay super well”. These are not the reasons I want to be driving my decision-making. Money can be important but let’s face it. You are in tech and you are going to be paid more than enough wherever you end up. I decided I needed to get real with myself. Instead of coming up with whatever answers I thought they would want to hear, I started asking myself what kind of impact I would like to have on the world and if Microsoft would help me do that. So I started my research, I looked at what sort of social impact are they having, how are they helping people? Are they improving lives, is this a place I could work and feel like I am making the world a better place. After just a little digging, I was shocked by what I was finding.
I couldn’t have asked for a better company to work for, it was the perfect fit for me. In the words of Satya Nadella (The CEO of Microsoft), their mission is to
“empower every person and every organization on the planet to achieve more.”
And they are doing it.
Microsoft focuses on building platforms that enable people and companies to do whatever it is they are doing, just better and faster. Platforms like
- Office 365
- Visual Studio Code
These products help people and companies be more efficient and organized, they develop a seamlessly integrated developer toolchain that makes coding an MVP (Minimum Viable Product) easy, and then scaling that MVP to a global market in seconds. Microsoft Dominantes every market it touches (except the Windows phone, Sorry Microsoft). And they are using their dominance to help the world. They partner with Nonprofits and give free products and discounts to make sure that the people dedicating their lives to help others have the tools they need to make the biggest impact they can. Check out their non-profit page to see what I am talking about.
All this is to say, when I decided to get genuine with myself self I found a real passion for Microsoft, the tools they are building and how they are impacting the world. And I believe it was this passion that landed me the internship.
I went into my interview with a wealth of information about the company and why I want to work for them. I had listened to their Fiscal Reports, I had deployed a project using Microsoft Azure, I knew which markets had the largest growth and which ones were declining. Even if I failed the interview, I had found a passion for their business.
What should your plan of action be?
- Get real with yourself, why Microsoft?
- Familiarize yourself with their business, what are their products? Which ones are doing well? I recommend listening to or reading their most recent fiscal report (2019)
- Preparation will be similar to the first round except more in-depth. I used a google doc to store my preparation notes. These notes are all based on Cracking the Coding Interview. And I highly recommend filling out the templates.
- Question Template
- Project/Work Template
- My complete Google Drive Notes and Templates
Cracking the Coding Interview
- Big O (The entire Chapter)
- Technical Questions (The entire Chapter)
- (From the chart of ‘what you need to know’ identify areas you are least practiced in and read those chapters)
Now you are all set, relax have fun in Seattle, socialize with the other candidates and congratulations. All of the work and effort you have put into this interview will make you a better Software Engineer no matter where you end up.
Thank you for reading this far, I hope these notes can help you in your application process. Remember to take the time to ask yourself why you want to work for Microsoft and get to know the company. When you do, you might just find where your passion lies.