Microsoft Software Engineer Interview Handbook
A look at the interview process for a software engineer position at Microsoft.
The purpose of this handbook is to provide you with an insight into what you should expect during the Microsoft interview process. You will also find details on how to answer some of the most frequently asked questions asked in Microsoft interviews.
Let’s take your interview to the next level!
Microsoft salary structure in the US
Here are the average salaries for software engineers at Microsoft in the US:
- SDE (level 59 & 60): 160K-166K
- SDE-II (level 61 & 62): 182K-195K
- Sr. SDE (level 63 & 64): 224K-254K
Microsoft interview process
Here is what to expect in a Microsoft interview for Software Engineers (SDE):
◈ Recruiter phone screen (45 mins)
Initial screening based on resume and background. Coding questions about data structures and algorithms.
◈ Technical phone interview or online assessments (90 mins)
You will be asked 2–4 coding questions related to data structures and algorithms to be solved within 90 mins.
◈ Onsite loop (4–5 interviews of one hour each)
Coding, design, and behavioral questions.
- Algorithms: Coding questions solved on a whiteboard.
- Design: Junior engineers will be asked Object Oriented Design questions, whereas senior engineers will be asked System Design questions.
- Behavioral questions related to your motivation, leadership, challenges, and how have you been resolving conflicts.
◈ Lunch interview
You will be taken to lunch halfway through your interviews. You’ll be interviewed during lunch. Expect design or behavioral questions.
◈ As Appropriate (As-Ap)
Similar to Amazon’s Bar Raiser, ‘As-Ap’ is a senior leader who has veto power over your hiring. Together, ‘As-Ap’ and the hiring manager make the final hiring decision. Based on your previous interviews, As-Ap can ask coding, design, or behavioral questions.
Interview tips
-
Data Structures — Practice common data structures like Array, String, HashTable, Tree, LinkedList, Stack, Queue, and Graph.
-
Algorithm — Practice recursion, breadth-first search, depth-first search, divide and conquer, sorting, and binary tree traversal algorithms.
-
Computer Science Basics — Go over CS basics related to OS, Networks, and DBMS.
-
Collaborate — Don’t forget to discuss, present multiple solutions, and take hints from the interviewer.
Top coding patterns for Microsoft
-
Merge Intervals (link)
-
Tree Breadth First Search (link)
-
Sliding Window (link)
-
K-way Merge (link)
-
Topological Sort (link)
Top recent Microsoft tagged coding questions on LeetCode
Here are the top coding questions:
1. Number of Islands (link)
Statement: Given a 2D array (i.e., a matrix) containing only 1
s (land) and 0
s (water), count the number of islands in it.
An island is a connected set of 1
s (land) and is surrounded by either an edge or 0
s (water). Each cell is considered connected to other cells horizontally or vertically (not diagonally).
2. Sign of the Product of an Array (easy)
Statement: There is a function signFunc(x)
that returns:
1
ifx
is positive.-1
ifx
is negative.0
ifx
is equal to0
.
You are given an integer array nums
. Let product
be the product of all values in the array nums
. Return signFunc(product)
.
3. Find N Unique Integers Sum up to Zero (easy)
Statement: Given an integer n
, return any array containing n
unique integers such that they add up to 0
.
4. Reverse every K-element Sub-list (link)
Statement: Given the head of a LinkedList and a number ‘k’, reverse every ‘k’ sized sub-list starting from the head.
5. Tasks Scheduling (link)
Statement: There are ’N’ tasks, labeled from ‘0’ to ‘N-1’. Each task can have some prerequisite tasks which need to be completed before it can be scheduled. Given the number of tasks and a list of prerequisite pairs, find out if it is possible to schedule all the tasks.
6. Minimum Meeting Rooms (link)
Statement: Given a list of intervals representing the start and end time of ’N’ meetings, find the minimum number of rooms required to hold all the meetings.
7. Merge K Sorted Lists (link)
Statement: Given an array of ‘K’ sorted LinkedLists, merge them into one sorted list.
8. Binary Search Tree Iterator (link)
Statement: Implement an iterator for the in-order traversal of a binary search tree (BST). That is, given a BST, we need to implement two functions:
-
bool haNext(): Returns true if at least one element is left in the in-order traversal of the BST.
-
int next(): Return the next element in the in-order traversal of the BST
9. Merge Intervals (link)
Statement: Given a list of intervals, merge all the overlapping intervals to produce a list that has only mutually exclusive intervals.
10. Alien dictionary (link)
Statement: There is a dictionary containing words from an alien language for which we don’t know the ordering of the letters. Write a method to find the correct order of the letters in the alien language. It is given that the input is a valid dictionary and there exists an ordering among its letters.
Top Microsoft system design questions
Here are the top system design questions:
Top Microsoft behavioral interview questions
Here are the top 7 behavioral questions for which you must prepare a good answer/story:
-
Tell me about a recent/interesting project you worked on.
-
Tell me about a recent/favorite project and some of the difficulties you faced.
-
Tell me about something you’ve done that you’re proud of.
-
How have you demonstrated leadership when you weren’t the manager?
-
What is your favorite Microsoft product, and how would you improve it?
-
How do you like to give and receive feedback?
-
Tell me about a time you took leadership in a task you were not expected to.
Check Grokking Modern Behavioral Interview for answering such questions.
Happy Interviewing 🚀