
Microsoft Software Engineer Interview Questions
& Process
Real candidates share what happened, how many rounds they had,
and how the experience turned out.
Based on 7,013 interview experiences · FREE TO READ
Candidate interview experiences
First-hand accounts from people who interviewed at Microsoft.
Software Engineer
The interview process for the SWE Intern role was pretty organized and simple. It began with an online application, and after a short time a recruiter reached out to schedule the first interview. The first round was a phone or virtual interview that mainly covered basic technical questions and some behavioral questions about my background, projects, and interest in the position. After that, I advanced to a technical interview where I had to solve coding problems and walk through my thought process step by step. The interviewer focused on my problem-solving abilities, my knowledge of data structures and algorithms, and how clearly I could explain my approach. They also asked a few follow-up questions to understand how I would improve or optimize my solution.
- One of the main things they asked me to do was solve a coding problem using data structures and talk through my logic as I was working on it, and then they followed up with questions on how I would make the solution more efficient.
Software Engineer
First you need to complete a home assignment of two Leetcode questions in 90 minutes (I don't remember them, but they were medium difficulty). After that, you get invited to an interview day (virtual, over Microsoft Teams). In the first interview I was introduced to the team leader, the role I was going to be assigned to, and we talked about my previous experience and education, showcasing a project I was taking part in, and then we did a simple Leetcode question. The second interview was just two Leetcode questions and that's it. All the interviewers were friendly, professional and made me feel like they wanted me to succeed, great experience overall. I got a call one day later telling me I got accepted.
- Introduce yourself and present a project you were involved in. What were the challenges? Which parts were you in charge of? and other project related questions.
- You're given an NxM matrix made of '*' and '.'. Return a new NxM matrix where each '.' is replaced with the number of its neighbors that are '*', like a simpler minesweeper problem.
- Given numbers N, M and X, create a new NxM matrix filled with '.', such that it has X '*' in random positions.
Software Developer
Interview Process Coding Assessment An initial technical coding challenge to assess problem-solving skills, algorithmic thinking, and code quality. Recruiting Coordinator Call A conversation covering background, role expectations, logistics, and cultural fit. Five Onsite Interviews a) Coding Interview #1 Live problem-solving session centered on data structures, algorithms, and writing clean, efficient code. b) System Design Interview Designing a scalable system, talking through architecture choices, trade-offs, performance, reliability, and testing strategies. c) Lunch Interview / Technical Conversation Informal chat focusing on technical depth, past experience, collaboration style, and real-world engineering problems. d) Coding Interview #2 Another practical coding session, often stressing edge cases, testing strategy, performance concerns, and code maintainability. e) Coding & Technical Discussion (Extended Conversation) A deeper technical discussion that includes whiteboard coding, design reasoning, debugging approaches, optimization strategies, and explaining concepts clearly and concisely (30+ technical terms, concepts, and trade-offs).
- Two Sum (variant) Given an array of integers, find indices of two numbers that sum to a target value.
- Longest Substring Without Repeating Characters Sliding window style problem — clearly walk through and explain the time complexity.
- Merge Intervals Given overlapping intervals, efficiently merge them into a combined list.
Microsoft Software Engineer Interview Questions
Quoted word for word from Microsoft interview reports.
“Implement a BST Iterator: init(root): initialize the iterator with the tree root (TreeNode); getNext(): return the smallest value not returned yet; hasNext(): return True if there are still values to return, False otherwise.”
Read reports →“Write a function that gets an integer array as input and, on each call, returns the same array but with the elements shuffled into a random order, where every possible scrambled version is equally likely.”
Read reports →“Implement a FastArray: Init(n): initialize the FastArray to size n; Set(i, v): set index i to value v; Get(i): return the value at index i; SetAll(v): set all values to v, where calling Set after that overrides it for that index. All operations must be O(1) time complexity.”
Read reports →“Given strings s1, s2, and s3, decide if s3 is generated by an interleaving of s1 and s2. An interleaving of two strings s and t is when s and t are cut into n and m substrings, such that: s = s1 + s2 + ... + sn and t = t1 + t2 + ... + tm with |n - m| <= 1, and the interleaving order is s1 + t1 + s2 + t2 + s3 + t3 + ... or t1 + s1 + t2 + s2 + t3 + s3 + ... Here, a + b is the concatenation of strings a and b.”
Read reports →“Given numbers N, M and X, create a new NxM matrix filled with '.', such that it has X '*' in random positions.”
Read report →“Build a HashMap implementation. given a dictionary of words, and a string made of chars, if you can split it into words from the dictionary, return the string.”
Read report →“Given a binary matrix, where we can completely flipkart rows or columns, is there a way to convert the whole matrix into 1s?”
Read report →“In Unreal Engine, what is the main role of the UCLASS() macro, and what does the related header file usually need to include? Answer: It makes the C++ class visible to the Unreal Reflection System so it can be used by the editor, Blueprints, and Garbage Collection. The header must include the generated file: [ClassName].generated.h.”
Read report →“Implement a LRU Cache: design a data structure with O(1) time for get and put, and evict the least recently used item when the capacity limit is passed.”
Read report →Formats, difficulty and experience
Across all 7,013 Microsoft interview reports.