Getting into Microsoft?
Today I'm joined by Nick Cosentino -- a Principal Software Engineering Manager at Microsoft, where we talk all about the interview experience and qualities Microsoft look for.
In today’s blog post I am partnering up with Dev Leader to bring you a collaborative newsletter where we share our insights into our experiences and observations of getting into Microsoft and what qualities Microsoft look for.
I feel like Nick, who is a Principal Software Engineering Manager at Microsoft, is the perfect person to partner with and answer some of the common questions. If you haven’t checked out his channels, please do so because he is awesome! He provides a lot of insightful content about growing as a software engineer as well as technical deep dives on C#.
Before we get started, here’s a bit about Nick:
Dev Leader is Nick Cosentino -- a Principal Software Engineering Manager at Microsoft. Nick creates educational software engineering content on YouTube, his articles, and his newsletter. He shares his experiences as a software engineer and engineering manager to help others in their careers, as well as using technical coding examples in C# to teach how to build applications and services.
Before we get started on this article, if you’re interested in finding more about our roles at Microsoft, don’t forget to check out Nick’s podcast where we talk about our experiences:
Now, let’s get into the questions…
1. Is DSA required to become a software engineer at Microsoft?
Nick: DSA will be a big requirement on your interview -- but how much you actively think about DSA while on the job could vary dramatically based on the team you're on and the work you're doing. So studying DSA will be critical for your interview process, and even at a minimum will be helpful while on the job.
A question like this becomes challenging to offer advice on because Microsoft is SO broad -- your focus in software development might not place a huge emphasis on data structures and algorithms. However, I think at a minimum having an understanding how to analyze and think about how data structures can impact your software design and if there are known algorithms to leverage in your solution can be a tremendous value while on the job.
Jade: I hate to say ‘it depends’ but it really does…
In the UK it can depend on a multitude of factors:
Number of applicants, if there are 100s or 1000s of applicants, DSA will be used as a filtering mechanism.
Role, depending on the function within Microsoft, some departments may need data structure and algorithms more than others.
Seniority, if someone is going in for a ‘Senior’ or ‘Principal’ or ‘Principal Lead’ role, they are less likely to be asked to do a DSA screening (at least from what I have observed). But like I said with point number 1, if there are lots of applicants, they may still do one.
Bottom line, you cannot rely on not having to do DSA as part of your interview process, going in prepared will likely give you the best chance.
2. How did you prepare for DSA?
Nick: Disclaimer: I was applying for a Principal Engineering Manager role at Microsoft... BUT I still had to grind practice questions. You might be asking "Why?" -- and there's a good answer for why I had to! Even having over 21 years of programming experience now, I would *still* go grind practice questions. And it's not because I don't understand the concepts behind data structures and algorithms, it's because many of the interview questions are framed in a way that you can practice for!
I find that they don't do a great job of representing on-the-job programming, and as a result, I need to practice specifically for the interviews. For me, as I was applying for jobs for several weeks, I set up multiple hours every single day to do LeetCode questions. I can't remember what level, but it didn't need to be the hardest by any means. I needed to force myself into the style of question and practice working through it.
I highly recommend you speak your thought process outloud and even debug your designs outloud. Get a rubber duck or talk to one of your pets so you don't need to annoy your friends or family members!
Jade: So I initially signed up for LeetCode for practicing the questions, as I had done Codility before and so I anticipated the questions were going to be similar to those and I started doing intense focus of easy/medium questions.
However, they ended up skipping the Codility round for me and so I ended up not needing to use what I had studied for. From the DSA technical tests I have seen and completed at Microsoft, typical questions range from the easy-medium range on LeetCode.
If you are coming into data structure and algorithms as a complete beginner, I would recommend you first get started with understand arrays and hash map data structures before you understanding other types. NeetCode does a really good breakdown of the order in which you should do this, I recommend you check out his YouTube here.
3. What is the interview process like currently?
Nick: The interview process is generally multiple rounds focusing on: DSA, Systems Design, and Behavioral questions. This can and does look different depending on the interview loop being done, the level being interviewed for, and who is doing the interview... but this is the general framework to expect.
I would even say for more junior roles where you may have less Systems Design experience, you may have another coding question to walk through. Certainly if you are more junior, spend the time practicing the DSA questions -- but do keep in mind the others are important too. If you're fresh out of college, you might not have the expectation that you've built and understand big complex distributed microservice systems. But they will expect that you know your DSA well, and they will expect that your non-technical skills are leveled up as well in your behaviorial interview.
Jade: So the interview process has changed each hiring round from what I’ve observed…. But, the general theme is similar:
DSA Filtering Round
Panel Round:
System Design Based
Competency Based
Coding Based
Final Round
Whilst these may be slightly altered or reworded slight, or some of the rounds may be dropped, these are typically the areas that they are looking for and testing for.
4. What do Microsoft look for in candidates?
Nick: A burning desire to have Clippy on every computer in the world!! Muahaha! But otherwise, there's definitely a big focus on you demonstrating your technical skills. I'd say your solution in your coding interview doesn't have to be perfect or the most optimal, but you should be able to explain it. You should be able to analyze it and describe where it could be better or worse. If you have bugs in it, you ideally can walk through it with the interviewer and acknowledge where there might be gaps. It's not about being perfect, it's about being able to think through challenges and explain these concepts well to the interviewer.
We also value diverse perspectives, and people that are able to accommodate that mindset as well. That means in your behavioral interview if you're talking about former colleagues like they are all dummies and you're the best -- probably not going to go over so well. Talk about your successes collaborating. Be ready to talk about something that maybe didn't go so well and how you learned from it. We want to see that you can learn and grow, that you're collaborative, that you consider the perspectives of others, and that you communicate well!
What we don't require: C#
In the two teams I have been on where people were hired in at the same time as me, I don't think anyone had prior C# experience except for me. That's two teams. That's junior through nearly senior. They all learned it no problem.
Jade: There’s a big emphasis on growth mindset at Microsoft. This means that they want to know you are willing to learn new things, to put yourself into situations where you are uncomfortable, so that you grow. Instead of staying stuck doing ‘what you’ve always done’, because that’s ‘what you know’, and thus doing the best thing rather than what’s comfortable to us.
One of the best ways to gain a growth mindset is to continuously put yourself in situations where you don’t know things, and find them out. Don’t go into problems believing your way is the only way, be open to other people’s suggestions and be able to pivot if it turns out their solution is the best one.
Microsoft, at least in my department, also focus on three key areas of an individual:
Individual Impact
Customer Impact
Team Impact
It’s not just enough to be good at coding, you also need to display you have the customer’s priorities and teams priorities at top of mind too.
5. Are there any non-technical skills that I need to be aware of?
Nick: Definitely, and I touched on a handful in the last question -- but this deserves special focus. It deserves special focus because the majority of people DO NOT focus on these skills! Your technical skills are critical -- you will be in a technical role as a software engineer.
Your non-technical skills are harder to work on because they require that you are working with other people to practice them!
From my experience, I have found that people can pick up new technical skills much easier. New tech stacks, new programming languages, etc... People that have challenges with communication or collaboration -- it takes a *significant* amount of effort to work on these skills.
Invest the time into them early and often. These will be critical to advancing as a software engineer *anywhere* that you work.
Jade: Absolutely, I also touched on this briefly on the last question in that there is a tremendous amount of focus on customer and team impact in our department.
And all of this requires non technical skills.
Working with customers and other team members requires you to have a lot of patience, understanding, empathy and have the ability to compromise.
You have to remember that it’s not about what you want, it’s about what’s best for the customer and what’s best for the team.
Another thing that you need to do is be able to take technical concepts and explain them in simplified ways so that your team mates and customers can understand them at the level in which they need to.
This can be incredibly hard when starting out, and is arguably more difficult to learn than some of the technical aspects.
Even now if I have a bad day I can feel myself letting my emotions take the best of me and sometimes not presenting myself in the best light, I have to remember to take a breath and have empathy and patience, even when it’s not always easy to do so.
And that’s all from us!
If you liked this article please give it a like, restack and subscribe.
I have also recently published Part 2 of my Ask Me Anything series, so be sure to check that out on my YouTube:
Articles I enjoyed this week:






Thanks for this great post
Demystifying the interview process at Microsoft!
Great collab, Jane and Nick!