The Entire Microsoft Interview Process Unfiltered

Data structures, algorithms, system design—have you ever wondered what big companies like Microsoft actually ask when hiring a senior developer?

 

 

I didn’t plan to write this post, but in a podcast conversation with a colleague, the topic came up and I talked about what had happened to me specifically. That clip went viral and even started trending, so I decided to expand on it.

 

I’m going to explain not just the steps in the process and what each interview is like, but also how it went for me personally.

 

1 - Applying for the Position

 

Microsoft, just like many other big companies, has a website where you can apply, and they also work with recruiters or external companies looking for suitable candidates.

The site is here: https://careers.microsoft.com/v2/global/en/home.html

 

Something to keep in mind is that Microsoft’s internal entities (or whatever they're called) are completely independent. That means if you work for Microsoft Ireland and want to move to Spain, you can’t just request a transfer—you have to apply for a new position and go through the full selection process again.

Same goes for moving to Seattle or any other office—they're all totally independent operations.

 

In my case, I sent my resume in April 2024, and that was it for a while.

 

 

2 - Hiring Manager

 

A few months later, in mid-September 2024, I received a message saying they liked my resume and wanted to interview me.

That same afternoon we had a call—he explained the process, the position, and we discussed my resume and how it fit Microsoft.

 

Everything went well, and they sent me to the next step: the code test.

 

3 - Microsoft Code Test for Senior Software Engineer

 

You could say this is the first real interview—even though it’s technically step two in the process, you haven’t really done anything yet.

 

This step is the classic “homework” challenge—a problem you need to solve at home. Specifically, Microsoft sends you a link to the Codility platform, where you'll have to solve two problems. The second one is clearly harder than the first.

 

You can expect the typical sorts of problems you see on these platforms—Codility, LeetCode, or HackerRank. You get an hour and a half to complete them, and the code has to be written directly on their platform, which is annoying because those editors are usually terrible.

 

Four years ago I did a Microsoft interview and this is where I failed. I even have a video about it (https://youtu.be/Ltd5nteVSEc). I failed because my solution’s performance wasn’t optimal (it worked, but was too slow in the performance tests), and the feedback was not to use LINQ—which is Microsoft’s own collection library. So I kept that in mind this time.

 

In my case, my problems resembled the following:

 

Robot room cleaner - https://algo.monster/liteproblems/489

 

 

Parallel courses https://algo.monster/liteproblems/1136

parallel courses

 

You could say one was medium-level (Leetcode/HackerRank-ish), the other was high-level.

 

From my perspective, they aren’t as straightforward as the ones you see on LeetCode—the text/problem description is made more difficult, probably to avoid people using AI to solve it. But honestly, if you do the advent of code every year, any questions you get in a code assessment are usually simpler than those.

 

Once you submit your solution, you won’t know if you’ve passed until Microsoft tells you. The platform itself only gives you two or three test cases, but internally they have many more, including performance tests. So even if it looks like you passed everything, you might still fail.

 

I personally thought I hadn’t passed, but in mid-November the Microsoft recruiter called and said my code was good, and that I needed to move to the next part of the process the next day or two.

To be clear, more than 60 days passed between when I did the test and when I got the results.

 

4 - Second Round of the Microsoft Process

 

This part is split into three interviews, all happening the same day. You do them all regardless of whether you pass each individual one or not, and they're not always in the same order.

 

These are the segments:

 

4.1 - Microsoft Technical Coding Interview

 

This interview is focused on solving a problem similar to the one in step 3, but at a medium to high level. In my case it was "clone graph", a pretty common exercise in these types of platforms.

https://leetcode.com/problems/clone-graph/description/

clone graph

During the interview you’re doing pair programming with another Microsoft developer. You can ask questions and, if you get stuck, they'll nudge you along—treat them as if they're a colleague solving a real problem with you.

A key aspect is mentioning and addressing edge cases—those rare but possible situations.

Also, like the at-home test, your solution must end up being optimal as there are more internal tests than you can see.

 

If you have memorized solutions, these exercises can be done in 10 minutes—so there’s more than enough time to start off suboptimal and iterate, as long as you’re not stuck for long periods.

 

I recommend reviewing or knowing how to work with graphs, trees, arrays—and when in doubt, use a hashmap.

 

4.2 - Microsoft Object-Oriented Programming Interview

 

This was the weirdest one for me because I honestly didn’t know what to expect. I thought it would be an hour of questions about OOP.

 

But no, it’s actually about designing an application (not a whole system, that comes next) applying object-oriented design principles.

 

A classic example is designing a parking lot or a library. You need to think about entities, relationships, system actions and how they're executed, user actions and their effects, etc.

Throughout the interview they’ll ask questions and expect you to modify your solution as you go—it’s expected that you ask questions too.

The main idea is to see if you can design maintainable, extensible, clean software, rather than on optimization and performance (which is what the coding interview tested).

 

4.3 - Microsoft System Design Interview

 

The system design interview is done on a whiteboard (or a digital equivalent). Here, you don’t write code, you explain architectures and their components.

 

Basically, you have to design a web application from scratch. The question will be something like designing an instant messaging app, or a reviews/ratings app similar to Google Reviews or TripAdvisor. You can find both examples in my book Building Distributed Systems.

building distributed systems

There are some crucial points in this interview. The most important: there isn’t a single right answer—everything has pros and cons. You must communicate your thinking to the interviewer at all times.

 

If you want to add something as simple as a queue, say, "I'm adding a queue here because of X, so that I can do Y more efficiently or at scale." Split up the application architecture, justify every decision (use serverless? why or why not?). The idea is to have an ongoing discussion while you design, justifying at every step.

 

If you start focusing on tiny details, they’ll probably ask you to speed up so you don’t spend the entire 45 minutes on them—this is a common pitfall. Always mention scalability and justify every major decision.

 

Afterwards—in my case 25 days later—I got a response.

 

5 - Behavioral Interview

 

If you make it through the previous stages, you’ll have the Behavioral Interview. From what I’ve heard, this doesn’t happen in every team/org, but in my case, it did.

This interview is all about selling yourself as an engineer who solves problems, not just someone who checks off tickets.

They’ll ask about your past, with your resume in front of them—explain issues you’ve had, how you solved them, or what you learned.

 

When was the last time you messed up at work? Maybe it’s been a while—depending on how good your company’s testing is—so try to recall something, because you can’t answer with "I never deploy a bug to production" or "my code never fails." Not only is it untrue, it’ll make you fail the interview.

Of course, they’ll make sure you can adapt to unexpected changes. Like if a requirement changes at the last minute, or you had to quickly learn something for a solution.

 

The recommendation is to use the STAR method (Situation, Task, Action, Result). Basically, tell a story (Situation), explain your responsibilities (Task), detail specific actions (Action), and finally the outcome (Result). Focus on what YOU did and learned. Personally, it's not my favorite—since I believe we work as teams—but companies love it, so it is what it is.

 

6 - Offer

 

If you pass all the interviews and there’s a team interested, you’ll get an offer.

 

In my case, in January 2025 I got a message that my application was not selected. I asked my internal Microsoft recruiter, and he told me the reasons were left blank in the system.

 

Two days later, there were layoffs—a lot. So I personally link the two things and think that might have been the reason, but I’d love to know for sure. If even the Microsoft recruiter said there was no reason, I guess we’ll never know. And since I’m the only one who cares, that’s life.

microsoft layoffs

After a process that lasted from the start of April 2024 until the end of January 2025, I can’t really expect much else.

Honestly, it was a pretty bad candidate experience.

 

This post was translated from Spanish. You can see the original one here.
If there is any problem you can add a comment bellow or contact me in the website's contact form

© copyright 2025 NetMentor | Todos los derechos reservados | RSS Feed

Buy me a coffee Invitame a un café