How To Pass the Microsoft Interview: A Practical Guide

Microsoft is one of the most prestigious and long-standing tech companies in the world. Their impact on the world of technology and beyond is nearly impossible to quantify, and their technical breadth expands into many different domains.

It’s no secret that working at Microsoft also offers a fair number of perks. This includes the standard high salary, catered lunches, Microsoft swag, and much more. Access to top-of-the-line equipment and the ability to work with some of the most capable and intelligent people in the industry is a dream for many software engineers.

Getting hired at a company like Microsoft is not easy. The competition for the prestige and benefits of a job at Microsoft are highly sought after, and as a result, you will be in competition with many other qualified engineers.

If you are intrigued by what Microsoft is offering, then you’ll need to be able to jump the “Microsoft Interview” hurdle. Mastering this interview is the barrier that stands before you and working for one of the largest and most prestigious tech companies.

In this post, we are going to be outlining how to prepare for the Microsoft technical interview. We will be highlighting some of the key differentiating factors for Microsoft and how these compare to other, more standard technical interviews.

In this post, I will cover these topics:

Don't do another coding interview...​

…Until you've mastered these 50 questions!

50 Coding Interview Questions Cover

Preparing for any interview requires some work, and this is more so for a company the size of Microsoft, where competition is very high. More preparation is always better, but what’s more important is the quality of preparation. After reading this post, you can rest assured that you will have greatly enhanced your chances of passing the interview!

What Is the Microsoft Interview?

What exactly is the Microsoft Interview? What should you expect when you walk into the room?

For the most part, a Microsoft interview consists of coding, and this is what the focus of this post specifically will be about. For strategies regarding how to ace your system design interview, consult the following post from Byte by Byte.

Let’s break down the primary components of what the Microsoft Interview consists of.

Recruitment

The recruitment process begins either when someone from the recruiting team reaches out to you directly or when you apply for a position at Microsoft and are contacted by someone from the recruiting team.

Generally, unsolicited recruitments occur to candidates who are graduating as part of a specific program or have, for instance, some type of compelling web presence to cause the recruiter on the Microsoft side to reach out.

You will often be applying directly to Microsoft to establish this correspondence. The most straightforward way to do this would be to apply directly on the careers website that Microsoft offers. Microsoft also has a specific website dedicated to student recruitment if you will be graduating from a university.

Furthermore, Microsoft sometimes recruits at job fairs, hackathons, etc., although waiting for any of those opportunities to arise organically may be a long waiting game, especially depending on where you are located around the globe.

You can also use a service like hackathon.com to see if there are any hackathons in your area.

If the application looks like a fit, someone from the Microsoft recruitment team will reach out to you with further instructions on how to navigate the interview process.

Once you are in touch with a recruiter, they will want to coordinate your first phone interview.

Phone Screen

The phone screen involves writing code via a shared document between you and the interviewer.

The problems that you receive here are ones that can be solved in a reasonable amount of time, e.g., thirty to forty-five minutes, and are typically relatively basic questions that require a good understanding of data structures and algorithms.

On-Site Interview

If you succeed at the phone screen, the next step will be to bring you on-site to interview in person at Microsoft.

This is typically structured as one full day of interviews consisting of about four to five separate interviews. Each of these interviews takes roughly an hour. You may also be interviewing with different teams to determine what the best fit between you and the teams is, more specifically, where your strengths could be used most effectively to leverage any given Microsoft team.

The interviews themselves will be conducted in the standard whiteboarding interview style, where you will be given a specific problem and expected to work through it during your interview. Depending on the role that you applied for, the interviews themselves may focus on technologies or concepts that are particularly relevant to that role.

Each on-site interview is conducted independently. However, it’s possible that the feedback from one interview may bleed into a subsequent on-site interview. This isn’t a hard and fast rule, but it can happen for the Microsoft on-sites.

Post-Interview

Once all of the interviews have concluded, each of the individuals that conducted the interviews with you will be responsible for submitting their respective feedback and making a decision to hire or not hire.

In the event that you receive a “no-hire” decision, you will need to start this entire process from the beginning. This can be very frustrating, especially after receiving this decision later on in the process.

If you are a “hire,” then congratulations! The recruiter will reach out to you with further information and instructions regarding your compensation package, start date, contract, etc.

How Is the Microsoft Interview Different From Other Companies’ Interviews?

There are a few components that make the Microsoft Interview a unique experience. The better you are prepared for these differences, the greater your chances to pass the interview. Having a good grasp of the specifics can really make a difference.

One of the noteworthy things about the way in which Microsoft conducts their on-site interviews is that you will generally be meeting in the office of the person who is interviewing you. This can be a bit more personable, and it also allows you to take a peek into the working life of a Microsoft employee. This gives you a great opportunity to pick up on some of the subtleties of the culture and atmosphere of the environment that you could possibly be working in.

Don't do another coding interview...​

…Until you've mastered these 50 questions!

50 Coding Interview Questions Cover

Another noteworthy element is that during the on-site interviews, the interviewer may share feedback amongst themselves between any of the on-site interviews. This is different from the way in which interviews are generally conducted at Google, Amazon, Apple, or Facebook, so it makes it stand out.

One of the downsides of this of course is that if you did poorly on one of your on-site interviews at Microsoft, then that means that this baggage could come along for the ride and make it more difficult for you to succeed at subsequent on-site interviews. This isn’t always the case though, so it would be worth not overstressing on this point if you feel as if you bombed one of the interviews, to keep your spirits up on subsequent interviews.

How to Prepare for the Microsoft Interview

So now that you know what the Microsoft Interview consists of, how do you most effectively go about preparing for it?

Most Common Microsoft Interview Categories

Choosing the types of questions that we spend our time practicing on is important, especially if we are targeting a specific company.
With this in mind, we decided to gather some data regarding the types of questions that are typically asked in Microsoft interviews.

We combed through the website Glassdoor to find specific examples of what people had experienced in their Microsoft interview.
Glassdoor has a page dedicated to Microsoft, and individuals who have interviewed at Microsoft give a review on their experience. This often includes specifics as to what problems, or at least, what types of problems they were asked during their interview.

After parsing through over one hundred interview experiences from Glassdoor for Microsoft, I obtained the following distribution of the types of problems that were generally encountered in a Microsoft interview.

Spend most of your time on the most important and most likely material to appear in your Microsoft interview.

 

pie chart of Microsoft interview question categories

We can see that there is a large emphasis on “data structure”-based questions over the “algorithm” and “design” categories.

For a bit more granularity, I also took these larger categories and broke them down into subcategories.

subcategory pie chart for Microsoft interview

From both of these graphs, it’s clear that Microsoft really favors the following topics:

  1. Array/String
  2. Linked List
  3. Graph/Tree

One of the observations I made in parsing through this data is that there were recurrent specific problems and topics that arose in all three of these subcategories.

Pro tip: The quality of preparation is more important than the quantity.

Let’s break each of these down. That way, you’ll be able to focus on the most likely categories, as well as the most likely specific problems, you may encounter in a Microsoft interview.

Array/String

In my analysis, the most common type of problem that interviewers encountered during their Microsoft interview was one involving either arrays or strings.

These types of problems are very common as warmup exercises and initial questions to get you into some of the more involved questions. To be sure, the majority of problems you will encounter in a Microsoft interview will involve some understanding of arrays and strings.

If you need a refresher on both arrays and string processing, I have playlists dedicated to both on my YouTube channel:

LucidProgramming Array Playlist
LucidProgramming String Processing Playlist

I go over each of these types of data structures in detail, and I also provide a number of example questions that you may receive during your Microsoft interview.

One of the questions that was very common in this category was how to take the words in a sentence and reverse just the words, not the whole sentence.

For instance, the sentence:

“Prepare for your technical interview using Byte by Byte”

would be reversed in the following manner:

“Byte by Byte using interview technical your for Prepare”

You may get this question or some slight variation on it, so it is important that you clarify with the interviewer what problem they want you to solve. If they want you to actually reverse the words themselves and not just the word order in the sentence, then coming up with this solution would reflect poorly.

My suggestion to you if you have not seen this problem before is to do a mock whiteboard solution. Whether that’s using a piece of paper or an actual whiteboard, step through your approach to solving the problem.

Practice as if you were in the interview, and keep a timer to make sure that you don’t go over. This particular problem should be a quick win for you, and if you find yourself taking more than five to ten minutes to solve it, you may need to determine what your pain points are here.

If you would like further practice, there are more practice problems on arrays and string processing problems that can be found under the “Practice Material” section of this post.

We’ve covered strings and arrays in a lot more detail here.

Linked List

The same advice for arrays and strings applies here for linked lists. In other words, you should be very comfortable with the linked list data structure, as it is commonly used in the majority of problems you will encounter.

One of the primary linked list-based questions that I observed in my analysis of the Glassdoor Microsoft dataset was the “linked list reversal” problem or some variation on that problem. That is, given a linked list data structure, how would you reverse the nodes in the list?

Assuming you have a solid grasp of the linked list data structure and how it is constructed, you should immediately start thinking about how to reorient the pointers to nodes in the opposite direction to invoke the reversal application for this problem.

If you want to see precisely how that problem is defined, in addition to an explained solution, you can check out a video on my channel, where I cover the linked list reversal problem:

LucidProgramming Linked List Reversal

My advice to you would be to listen to the problem statement in the first part of the video. Pause it at this point, and attempt to solve on your own. If you struggle, that’s OK.

If you get stuck or believe you have a solution that works and is efficient, watch the remainder of the video to see how I solve it. While it’s not the only way to solve this problem, it is one of the more efficient ways to do so.

Once you feel comfortable with the “linked list reversal” problem, I would then advise you to seek out the other problems on my channel for linked lists. There are playlists on single linked lists, doubly linked lists, and circular linked lists that you can check out

Being comfortable with this problem and the techniques and data structures used to solve it will serve you well even if you do not receive this problem or any variation of it during your Microsoft interview.

Graph/Tree

Graph and tree problems are quite common across the board for the other big tech companies. For Amazon, Google, and Apple, graph and tree problems were among the top three subcategories that appeared in the Glassdoor data for each of these companies.

Microsoft is no different in that they also desire a thorough understanding and command of these data structures and an ability to effectively apply these concepts to abstract problems.

In my analysis, the most common type of problem that interviewers encountered during their Microsoft interview was one involving trees. While a few of them did have the occasional more exotic tree-like data structure (for instance, a trie), the majority of the tree-based questions were focused nearly entirely on either binary trees (BTs) or binary search trees (BSTs).

It would then stand to reason that understanding these types of data structures at a deep and fundamental level is exceptionally important for your success.

In addition, being comfortable with traversal algorithms on BTs and BSTs is a must-have skill. You should know how to operate both in an iterative, as well as recursive, fashion.

If you need a refresher on both BTs and BSTs, I have playlists dedicated to both on my YouTube channel:

LucidProgramming Binary Tree Playlist
LucidProgramming Binary Search Tree Playlist

I go over each of these types of data structures in detail, and I also provide a number of example questions that you may receive during your Microsoft interview.

Practice Material

Like most things, practice makes perfect. The material that you use to practice is as important as the techniques that you use while doing so.

My two favorite practice sources for these types of problems are Cracking the Coding Interview and 50 Practice Questions for Coding Interviews. More on both up ahead.

Cracking the Coding Interview

For starters, a resource like Cracking the Coding Interview (CTCI) is a text that not only covers the primary data structures and algorithms topics but also has a number of excellent problems and solutions in each category.

Note that the aforementioned link is an affiliate link for Byte by Byte. If you purchase a copy of this book, you’ll be supporting the creation of content on this platform at no extra cost to you. If you’ve found these types of posts valuable and intend on picking up this book, please do consider picking up via this link!

It’s a large textbook though, so having a strategy on how to utilize it is key. Check out the following post and companion video from Byte by Byte on how to best use this resource.

50 Practice Questions for Coding Interviews

Alternatively, or in addition, Byte by Byte has recently put together a free e-book that covers fifty practice questions. These fifty questions serve as a good metric to determine whether or not you are adequately prepared to tackle the Microsoft Interview.

Each of these fifty questions also has a companion blog post and video that walk through the solution. In the event that you get stuck on solving a particularly difficult problem, having this material to help you along and make progress is key to staying on target.

In the strategy section, we will consider how to approach these two resources in order to best extract value and increase your chances of passing the Microsoft Interview.

Additional Resources to Master the Microsoft Interview

Here are a number of additional resources, including those referenced to in this post.

Cracking the Coding Interview by Gayle McDowell (affiliate link)
50 Practice Questions for Your Coding Interview by Byte by Byte
HackerRank Website
Pramp Website
Microsoft Careers Website

Note: For preparing for interviews from other big tech companies, check out the other similar blog posts on Byte by Byte:

Don't do another coding interview...​

…Until you’ve mastered these 50 questions!

50 Coding Interview Questions Cover
Vincent Russo

Vincent Russo

Vincent is a Byte by Byte contributor who is also a full-time software developer and runs LucidProgramming (http://bit.ly/lucidcode); a YouTube channel to help individuals improve their software skills and value as developers. LucidProgramming has content centered on Python development where the topics covered include data structures, algorithms, web scraping, natural language processing, and many more.