The process started with a HackerRank online assessment containing 2 questions. Both were on the harder side, but I got through them, and a couple of days later I heard I was moving on to the later rounds.
- Coding: I practiced the most frequently asked Microsoft coding questions, and most of what came up was either straight from that list or a close variation.
- System Design: I worked through the system design questions Microsoft asks most often, using an online course and a well-known system design book as references.
- Low Level Design: I used a video-based course to pick up the common LLD patterns.
- Behavioural or AA interview: This one was unlike what other companies do. I was asked in depth what I disliked about my current job and why I wanted to leave, and a few interesting details came out that were not on my resume. One tip: if you have no concrete experience that matches the value they are probing for, it is fine to just admit that.
A surprise for me was that several rounds dug deeply into things I had built at my current job. In one I had to reverse-engineer a system I had worked on and explain why it was designed the way it was.
The AA round was the trickiest. I got a lot of detailed questions about my work history and background, and I felt grilled on how I like to work, what my ideal working style looks like, and what kind of manager would suit me. I had not prepared for that and it is hard to prepare for anyway. I was also handed a very vague, open-ended prompt in that round, which was to design a data center.
One nice thing about Microsoft is that there is no cooloff period, so apply to as many teams as you can to improve your odds. The process differs quite a bit from team to team, but the bar is the same everywhere.
Discussion
Loading comments…