Senior Engineer’s Guide to Microsoft Interviews + Questions
Senior Engineer's Guide To Microsoft's Interview Process and Questions
The Microsoft Hiring Process and Common Questions
~20 minute read
Microsoft’s interview process and questions
Microsoft’s interview process consists of the following steps:
- Recruiter call (and a hiring manager call from principal engineers and above)
- Technical phone interview or Codility quiz
- Onsite interviews
- Team matching
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.
Step 1: Recruiter call
Please see the section above called “A note about recruiter calls”
Step 2: Technical interview (phone screen or a Codility quiz)
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.
Step 3: Onsite
The onsite format can vary per org, but it typically includes the following round of interviews:
- One behavioral round of behavioral interview questions
- Two or three coding rounds
- One system design round
- One domain-specific round
Microsoft’s interview types in detail
Coding
This is the most important round at Microsoft.
Anecdote from a Microsoft Interviewer
“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):
- Arrays and strings
- Linked lists
- Graphs and trees
LeetCode’s Top Questions for Microsoft is also a helpful resource.
Anecdote from a Microsoft Interviewer
“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
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.
Anecdote from a Microsoft Interviewer
“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.’”
Outside of compliance-related questions, here are examples of other system design questions you might encounter:
- Let's go back in time, how would you ship cargo to customers? Discuss an approach that touches on availability, latency, reliability, communication, etc.
- Let's say we are interested in palindromes and we want to store them durably whenever we come up with them. Design a system that lets you enter a new palindrome every time someone comes up with one, and allows users to check if a palindrome exists in a system.
- Assume you are a teacher and you want to test students if they know the country names correctly. You are provided a list of countries and pictures. Design a webpage + backend API that mimics a test for students to evaluate their knowledge (this would be for a full-stack role).
Domain-specific round
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.
Anecdote from a Microsoft Interviewer
“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.”
Behavioral
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.
How Microsoft makes hiring decisions
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:
- Junior: Has growth mindset, seeks to understand ideas
- Senior: Drives self development, models openness, failure is okay, open to different ideas
- Principal: Consistently challenges group thinking towards productive discussion
Microsoft coding interview preparation resources
Here are a few more interview tips and resources to help you prep for a software developer or software engineer interview at Microsoft.
- Microsoft interviewers can ask whatever questions they want, yet some interviewers repeat questions, so LeetCode’s Top Questions for Microsoft is somewhat helpful.
- Study up on the services the team you’re interviewing with uses.
- Ask your recruiter for specifics about your rounds. If you get nothing helpful, then practice practical questions, LeetCode-style questions, and domain-specific questions.
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.
Solutions to common Microsoft questions
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.
MEDIUM
Data Structures and Algorithms
Subarray Sum Equals K
MEDIUM
Data Structures and Algorithms
Even Odd Tree
EASY
Data Structures and Algorithms
Reverse Words in a String
Given an input string s, reverse the order of the words without reversing the words themselves.
HARD
Data Structures and Algorithms
Reverse Nodes in k-Group
MEDIUM
Data Structures and Algorithms
Currency Conversion
MEDIUM
Data Structures and Algorithms
LRU Cache
[Implement an LRU Cache
LRU = Least recently used cache](/content/questions/lru-cache/index.html)
Technical topics
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: