Microsoft’s interview process is known to be quite exacting in nature. As a leading global tech company, Microsoft receives thousands of applications for coveted tech positions every year. With its pick of talent, Microsoft designs its technical interviews to identify candidates who can bring the most value to the company, especially in key knowledge areas such as product development, design, and coding.
While Microsoft’s interview process is challenging, it’s certainly not impossible to get through. Like most top tech and FAANG companies, Microsoft focuses on a candidate's understanding of computer fundamentals and problem solving abilities. Successful candidates testify that practice is the best way to develop your skills and knowledge in preparation for the interview.
Technical interviews at Microsoft assess both your technical and behavioral skills. However, coding interviews form the largest part of the process. Interviewers will expect you to explain your approach as you develop solutions to coding problems. It is imperative that you focus on reasoning and logic i.e. how you solve problems as opposed to stating the correct answer.
Technical interviews generally centre around common knowledge areas given that most tech companies operate in the same product fields or markets. However, every company compiles a unique list of interview questions based on specific knowledge areas required for job roles within their organization.
Although Microsoft’s interviews include a lot of commonly asked questions, trying to ascertain and study the entire list of questions is an exhausting and unreliable method of preparation. Questions are often revised or removed from the usual rotation and replaced with new ones, rendering the list irrelevant from time to time.
Note that while the interview process at Microsoft is fairly structured, it doesn’t follow a typical format. Interviews at Microsoft are generally oriented to meet the requirements of a specific job role. It is imperative, therefore, to familiarise yourself with as many questions as possible to gain insights into the patterns or types of questions asked. This will enable you to identify the concepts to be addressed in a question, irrespective of the manner in which it is posed.
The onus of understanding how an interviewer wants a question solved lies on the candidate. If you practice and prepare the right way for an interview at Microsoft, you will be able to recognise underlying patterns and ask appropriate clarifying questions. This will further enable you to articulate your thought process as you develop a solution. Interviewers are averse to rehearsed answers.
35 commonly asked Microsoft technical interview questions 2020
This list, though not exhaustive and at varying degrees of difficulty, will give you an indication of the type of questions to expect and help you gauge knowledge areas that interviewers focus on.
Technical interview questions at Microsoft are based on important coding knowledge areas such as data structures, algorithms, and design. Coding interviews at Microsoft tend to emphasize knowledge on data structures. Questions are usually centered around Graphs, Trees, Linked Lists, Search, Sort, Strings, Arrays, System Design, Bit Manipulation, Math, Dynamic Programming among others.
- Remove duplicates from a string.
- Given a rotated array which is sorted, search for an element in it.
- Given two linked lists that represent two big numbers (numbers that cannot be stored in an int or long long int), write a function that adds the numbers and stores the results in a third list.
- Print the last 10 lines of a big file or a big string.
- Clone a linked list with next and arbitrary (or random) pointers.
- Connect nodes at the same level.
- Least common ancestor of a binary tree or a binary search tree.
- Test case questions e.g. test an ATM.
- Run length encoding.
- Detect cycle in a linked list.
- Given a sorted array of size n. Each element in the array is unique and lies from 1 to n+1. Find the missing element.
- Check if a binary tree is balanced.
- Validate a given IP address.
- Two nodes of a BST are swapped. Correct the BST.
- Given two values k1 and k2 (where k1 < k2) and a root pointer to a Binary Search Tree. Print all the keys of the tree in range k1 to k2. i.e. print all x such that k1<=x<=k2 and x is a key of given BST. Print all the keys in increasing order.
- Given a singly linked list, delete the middle of the linked list.
- Given a binary tree of size N and an integer K, print all nodes that are at distance k from root (root is considered at distance 0 from itself). Nodes should be printed from left to right. If k is more than the height of the tree, nothing should be printed.
- Given an array where every element occurs three times, except one element which occurs only once, find the element that occurs once. Expected time complexity is O(n) and O(1) extra space.
- Given a text txt[0..n-1] and a pattern pat[0..m-1], write a function search(char pat, char txt) that prints all occurrences of pat and its permutations (or anagrams) in txt. You may assume that n > m. Expected time complexity is O(n)
- Given a string S, remove all the duplicates in the given string.
- Find the contiguous subarray within an array (containing at least one number) which has the largest product. Return an integer corresponding to the maximum product possible.
- Find a substring in a string and replace it with another string.
- Design a tiny URL.
- Write code to convert a given number into words.
- Convert a binary tree to DLL.
- Given a fraction, find a recurring sequence of digits if it exists, otherwise print “No recurring sequence”.
- Construct the sequence arr, arr, ... by the following rules. For i=1 we put arr=1. Now let i >= 2. Then arr[i] is the least positive integer such that the following two conditions hold
(i) arr[i] > arr[i - 1];
(ii) for all k, j < i we have arr[i] is not equal to n1 * arr[k] - n2 * arr[j].
Find the first n terms of this sequence.
- Given a string ‘str’ of digits, find the length of the longest substring of ‘str’, such that the length of the substring is 2k digits and sum of left k digits is equal to the sum of right k digits.
- MS Excel columns have a pattern A, B, C, …, Z, AA, AB, AC, …., AZ, BA, BB, … ZZ, AAA, AAB ….. etc. In other words, column 1 is named “A”, column 2 “B”, column 27 as “AA”. Given a column number, find its corresponding Excel column name.
- Implement wildcard pattern matching with support for ‘?’ and ‘*’ for strings A and B.
- ’?’ : Matches any single character.
- ‘*’ : Matches any sequence of characters (including the empty sequence). The matching should cover the entire input string (not partial).
- Given a string A representing an absolute path for a file (Unix-style). Return the string A after simplifying the absolute path. Note: Absolute paths always begin with ’/’ ( root directory ); Paths will not have whitespace characters.
- Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses of length 2*n.
- You are given a set of coins S. In how many ways can you make sum N assuming you have an infinite number of each coin in the set. Note : Coins in set S will be unique. Expected space complexity of this problem is O(N).
- Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
- Given a singly linked list, L: L0 → L1 → … → Ln-1 → Ln,reorder it to: L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → …
Technical interviews at Microsoft include a behavioral round in addition to coding rounds. Questions asked in this round will focus on your ability to communicate, team work, project management, conflict resolution etc. At Microsoft a learning and growth mindset is what interviewers look out for in candidates.
Below are some common types of behavioral questions at Microsoft interviews.
This will help you understand the type of questions asked to assess your soft skills and cultural fit at Microsoft.
- Would you join Google? Why or why not?
- Have you experienced failure on a past project? How did you overcome it?
- Describe a successful project.
- How would you deal with conflict within your team?
- Explain how you would make decisions given incomplete information.
- Describe your experience leading a team.
- How do you assess customer requirements?
- Describe a product you conceptualised and launched.
- Have you disagreed with your manager on a past project? How did you handle it?
- Describe a group project you worked on and what part you worked on.
Whether you’re a recent graduate or an experienced professional, preparing for a technical interview at Microsoft requires structured effort. To assess how your current skills match up to the company requirements refer Interview Kickstart’s Microsoft Interview Guide to gain an in-depth understanding of the various stages of the interview process and what to expect.
To learn more about how the technical interview process at Microsoft compares to that of its top competitors e.g. like Google, and other top tech companies, and for tips on how to prepare for technical interviews, refer the following resources:
- Google Interview Guide
- Netflix Interview Guide
- 35+ Technical Interview Questions asked at Top Technology Companies
- Why is Structured Learning Important for Technical Interviews
- Nailing the Technical Interview