Microsoft Software Development Engineer II Interview Experience
Microsoft · Mid level · Software Engineer
In my binary tree round, I was not even leaning on BFS or DFS terminology, and they still liked my solution because I kept reasoning it out. That was the moment where Microsoft felt more about logical thinking than memorized interview patterns.
Interview process
I went through a pretty long Microsoft process for an SDE II role compared with other companies. It started with a HackerRank, then a one-hour recruiter screen that was very focused on motivation and culture fit, and then a loop of three back-to-back interviews on coding, system design, and low-level design. What stood out to me was how vague several prompts were, because I had to keep asking questions to uncover the requirements instead of just jumping into a textbook answer. In the coding round, they seemed to care more about how I reasoned through the binary tree problem than whether I used the exact BFS or DFS terminology. Overall, it felt about the same difficulty as Google or Amazon, but a little more focused on logical thinking and culture.
Interview rounds · 5
- 1
Online assessment
CodingData Structures & AlgorithmsI started with a HackerRank that felt pretty black-box. There were two coding problems, and I couldn't see the real test cases, so I had to infer a lot from the examples and just trust my interpretation.
Q1. Implement a method to convert an integer to a string of bytes without using built-in helper functions.
How they answeredI had to write my own conversion logic instead of using language helpers. The hard part was that the constraints and test cases were hidden, so I had to infer behavior from the examples. I remember reading the examples as if they were encoding the real requirement, and I believed the expected byte order was little-endian even though they never stated it directly.
Q2. Solve a graph problem around connected components using a union-set style approach and graph traversal.
How they answeredI remember it being a connected-components style problem on an edge list. I think I had to return some kind of list of connected components, and to make it efficient I was thinking in terms of union set plus BFS or DFS. I do not remember the exact prompt, but that was the core of it.
- 2
Recruiter screen
BehavioralThe recruiter call was about an hour and felt more culture-heavy than I expected. We talked about my experience, why I wanted Microsoft, and how I handle conflict, so it definitely felt like they were screening for motivation and fit, not just resume match.
Q1. Why do you want to work at Microsoft?
How they answeredI treated it as a pure motivation question about why I wanted to work there. It did not feel like they were pushing me toward one specific product or team. They mostly wanted to understand my interest in Microsoft itself.
Q2. Tell me about a time you had a conflict with a colleague.
How they answeredI answered with a technical disagreement and explained how we worked through it and found a common solution. The focus was less on blame and more on how I handled the situation with the other person and got to a workable outcome together.
- 3
Technical round
CodingData Structures & AlgorithmsThe coding round was just one binary tree problem, but it was more open-ended than I expected. I had to keep asking clarifying questions because they did not really pin down constraints or even exactly what output they wanted, and the interviewer mostly gave hints instead of steering too hard.
Q1. Given a binary tree, find the shortest path from the root to a leaf.
How they answeredThey gave me a very open prompt and did not add constraints, so I kept asking for direction. I ended up returning the length of the shortest root-to-leaf path. I was really reasoning through it logically more than naming textbook BFS or DFS, and they seemed fine with that. The interviewer mostly gave hints and sometimes said it did not matter as long as I could justify my choices.
- 4
Technical round
System DesignThe system design round was the hardest one for me. The interviewer gave a very vague prompt and expected me to drive by asking questions, and most of the discussion ended up being about networking choices and reliability details for a large update flow.
Q1. Design a system for sending software updates to cars, like an over-the-air update system for an automotive company.
How they answeredI first tried to understand the problem because the prompt was very vague. We spent most of the time on the protocol and reliability side, especially how to send a very large update in multiple pieces. I discussed chunking the update, thought through TCP versus UDP, and proposed that the server first tell the car how many packages are coming so the car can count them and send back a warning if something is missing. We ran out of time before getting into security.
Follow-up questions- The update is very large and cannot be sent in one package. How would you split and deliver it?
- What would you do if some packages get lost?
- 5
Technical round
TechnicalCodingSystem DesignThe low-level design round was also ambiguous. They gave me C++ function headers and I had to reverse engineer what the underlying system was supposed to do, so it felt like they were testing how I reason through incomplete requirements.
Q1. Given three C++ function headers, implement the underlying cache or buffer behavior they describe.
How they answeredI only got the headers, so I had to ask questions to figure out what they actually wanted. The functions were roughly about writing bytes into a buffer, checking whether space was left, and reading data back. I suggested using an LRU-style structure for the implementation, and they seemed happy with that direction. After I coded it, there were no real follow-ups and we used the remaining time to talk about the team.
Tips from the candidate
I would study the company culture and not just grind data structures. Be ready to talk about uncomfortable situations, especially conflict with colleagues, and explain how you solved them. Also, keep asking questions and stay engaged with the interviewer the whole time, because a lot of the prompts are vague on purpose and you have to drive.
Company culture
I felt Microsoft put real value on culture fit and logical thinking. A lot of the interview prompts were intentionally ambiguous, so they seemed to care about whether I could ask good questions, stay calm, and reason my way forward. Compared with Google and Amazon, it did not feel easier or harder, but it felt a little less about knowing data structures and algorithms in perfect detail and a little more about how I think. Even when I was not using textbook terminology, they still appreciated a logical approach.