Microsoft’s interview process consists of the following steps:
Before we get into the details of each of these steps, here are a few general notes about Microsoft’s process, evaluation criteria, and interviewers.
Microsoft lets you interview with different teams at the same time; if you want to maximize your chances interview with several of them simultaneously.
Microsoft’s process is mainly (though not fully!) team-dependent. That means that while you interview for a specific team, you may not necessarily be interviewing just with people on that team. For example, sometimes you might interview with the hiring manager for a specific team, and your other interviewers will be individual contributors from other teams.
Each team runs their own processes, which can vary quite a bit from team to team as well. Sometimes Microsoft bakes a quasi-team-matching activity into an interview process: where a candidate can meet multiple hiring managers in the same loop. Another variation is some candidates’ first round screens are with a hiring manager instead of a recruiter.
Please see the section above called “A note about recruiter calls”
Microsoft’s technical phone screen is a traditional LeetCode-style coding interview, with technical questions ranging from easy to medium. Interviewers aren’t given a rubric. Some of them get training, others don’t. They have freedom to ask whatever they want and judge your technical skills however they want in this round.
If you end up getting the asynchronous Codility quiz instead, you sign on and have to answer several algorithmic questions in a short amount of time. In some ways, this is harder than the technical phone screen with the human because if you don’t pass the test cases, you get filtered out. You’re judged on several factors including: test cases, correctness, and code quality.
The onsite format can vary per org, but it typically includes the following round of interviews:
This is the most important round at Microsoft.
“Since most engineers at Microsoft use C#, if you can, you should use C#, Java, or Python in the technical rounds. This way, your interviewer will be able to understand your code better and may even be able to help.”
Microsoft usually asks LeetCode-style medium-difficulty questions in coding rounds. Interviewers get to pick their own coding questions, but, according to interviewers, Microsoft favors the following topics (in no particular order):
LeetCode’s Top Questions for Microsoft is also a helpful resource.
“Tree questions are most popular, e.g., various types of tree sum, tree traversals of certain orders, subtrees, etc.”
Dynamic programming used to basically never happen, but now it’s a little more common. When you do get dynamic programming problems, it’s usually the classic ones like coin change, stair steps, edit distance, and various types of counting problems.
Tooling for coding interviews is at the team’s discretion, but many teams use Codility.
For everything you need to prepare for Microsoft’s coding interview, check out the section called "Microsoft coding interview preparation resources" below.
System design is tied for the second most important round at Microsoft, and it’s sometimes conducted by a hiring manager. One idiosyncratic aspect of Microsoft’s process is their penchant for asking questions about compliance-related topics.
“My Microsoft interview was insanely easy. I tried to step it up when I started being an interviewer at Microsoft. But then I realized that's how it has to be. Technical is like 25% of it. It’s not a generic FAANG interview. It’s more about three things: a) ‘How well does this candidate know this system they’re going to be working on?’, b) ‘How do they meet the exact needs we have on this team?’, and c) ‘Do they understand the little things we value? Like compliance, manipulating data, data pipelines, EU data processing, etc.’”
“Microsoft is obsessed with the details of compliance. I don’t think I have seen a system that is as set up for auditing as Microsoft. Employees are asked to log so much. There’s a centralized grid system which is built into Azure. All logs are to be routed into that. This allows for centralized log spanning and auditing. Which I have not seen anywhere else.”
Outside of compliance-related questions, here are examples of other system design questions you might encounter:
Tooling for system design interviews is at the team’s discretion, but many Microsoft employees use Codility Canvas or Excalidraw.
The domain-specific round is tied for the second most important round at Microsoft. Microsoft is more likely to do these types of rounds than other FAANGs, and these rounds can feel similar to system design but involve some coding.
Usually, domain-specific rounds are customized to the domain a given team works on and dives deep into that technology. So, whatever area this team is in (cloud networking, big data, etc.), that’s what they’ll ask you about.
On some occasions, Microsoft customizes a round to the candidate’s skills. For example, if you’re a backend engineer, they might ask you to design an API or design a database. They also may ask you open ended trivia questions about the programming language you are most familiar with.
“Another thing that happens in these rounds is they’ll ask you to discuss a complicated problem you have solved at your job. It's good for candidates to prepare to discuss 2-3 projects in detail: how did they implement caching, deal with scaling issues, and so on.”
Finally, you may get a scenario question that’s commensurate with your skill set. For instance, if you’re a back-end engineer, you may get a question like, “Imagine you're in a team and we're building a credit card registration system. And it's used by different firms. How do you build the interface?”
This is the least important round at Microsoft: the lowest effort way to pass is to not blame your teammates, not show red flags, and stay positive.
Microsoft doesn’t have a specific set of traits they’re looking for. You can expect the usual questions about your strengths and weaknesses, failure, conflicts with colleagues, projects, and lessons you’ve learned from past experiences in your career.
“A lot of people struggle with ‘What are your top 2 strengths and weaknesses?’ probably because they are trying to make up an answer on the spot. Good to prep answers to typical behavioral questions in advance.”
Ultimately, they are screening for three soft skills: positivity, ownership, and communication. They want to hire friendly people who can do the work and not blame others. This is not Apple or Netflix, where they want a particular flavor of personality, or where they ask interviewers to hire candidates they’d like to befriend. It’s more neutral.
Behavioral rounds can sometimes have a coding component as well. When this happens, it might be an easy/medium-difficulty 20-min LeetCode-style problem.
Interviewers grade candidates on different scales, depending on the team.
Some orgs have an asynchronous feedback process, other orgs rely on live discussion, and still-other orgs do both. Some orgs have rubrics, and others don’t. Here’s how a rubric looks at one org:
Here are a few more interview tips and resources to help you prep for a software developer or software engineer interview at Microsoft.
In addition, we’ve aggregated a bunch of useful Microsoft content for you! We have replays of candidates doing mock interviews with Microsoft interviewers, long-form solutions to common Microsoft questions, and deep dives into technical topics that tend to come up in Microsoft interviews.
Below are a series of mock interview replays, conducted by Microsoft interviewers on our platform. Watch them so you can learn from others’ mistakes.
Below are common questions that interviewers from Microsoft ask on our platform. Since our data comes from mock interviews, questions may not be exactly the same as what you'd see in real interviews.
Given an unsorted array of integers and an integer k, find the number of subarrays whose sum equals k.
Given a tree, verify that on even levels, all values in the level are strictly increasing and even. On odd levels, verify all values in the level are strictly decreasing and odd.
Given a list of tuples that represent (X, Y) coordinates on an XY plane and an integer K, return a list of the K-closest points to the origin (0, 0).
Given a set of parameters, find the conversion rate that maps to the 'from' currency to the 'to' currency from every single query. Your return value should be a number.
Implement an LRU Cache LRU = Least recently used cache
You are given the root of a binary tree containing digits from 0 to 9 only. Each root-to-leaf path in the tree represents a number, for example, the root-to-leaf path 1 -> 2 -> 3 represents the number 123. Return the total sum of all root-to-leaf numbers.
Given a list of integers L and a number K, write a function that reorganizes L into three partitions: elements less than K, elements equal to K, and elements greater than K. No additional lists may be used.
Given an input string `s`, reverse the order of the words without reversing the words themselves.
Given an input string (s) and a pattern (p), implement regular expression matching with support for '.' and '*'. '.' Matches any single character. '*' Matches zero or more of the preceding element.
The boundary of a binary tree is the concatenation of the root, the left boundary, the leaves ordered from left-to-right, and the reverse order of the right boundary.
To figure out what technical topics will come up in your Microsoft interviews, we did two things. First, we spoke to a bunch of Microsoft interviewers in our community. Then we cross-referenced all the anecdotes we heard with Glassdoor data AND our own data-set of mock interviews in the style of Microsoft. Based on all of the above, here are the technical topics you’re likely to encounter:
Interview prep and job hunting are chaos and pain. We can help. Really.