Interview Process
I have applied for approximately 6 positions at Microsoft that matched my experience and areas of expertise from October to November. I received a call from Microsoft HR in March regarding one of the openings I had applied for. HR informed me it was a weekend drive and conducted 3 rounds on that Saturday.
1. Interview round - 1: (Coding round - 60 mins)
This round began with the interviewer spending the first 20 minutes discussing my previous and current work and asking me questions about microservices design considerations. The last 40 minutes involved a medium-level question on recursion and IP address parsing. I was able to devise a backtracking-based solution and write the code on the provided platform.
Feedback positive; proceeded to the next technical round.
2. Interview round - 2: (Multi threading - 60 mins) This round involved a challenge to design and develop a logging API that would be used concurrently. The implementation was concise, but I spent the hour discussing various multi-threading scenarios and mitigation techniques.
Feedback positive; proceeded to the Hiring Manager round
3. Interview round - 3: This round lasted 1 hour and 40 minutes. The manager started by discussing my career, previous companies, reasons for switching companies, and some behavioral questions. He asked about MVVM patterns and design patterns in WPF. I answered to the best of my ability but honestly stated that I wasn't interested in working in that area.
Feedback mixed, did not proceed to a Hire call with their team
A twist : I received a rejection call from HR. I followed up and was told they were not proceeding with a hire call because the manager wanted to wait on my profile, despite my technical skills. A week later, HR contacted me for another position and conducted further interviews.
1. Interview round - 4: (Coding round - 60 mins)
This round started with a hard-level linked list question. I solved it in 20 minutes. Then, the interviewer asked a medium-level question on Binary Tree BFS traversal. After solving that in 15 minutes, he gave a follow-up question with a variation on the traversal. It took me 10 minutes to discuss and solve this.
2. Interview round - 5: (Coding round - 45 mins)
This coding round involved a question based on a 2D matrix and its traversal. I had solved similar problems before and was able to provide a working solution.
Feedback positive; proceeded to the next technical round.
3. Interview round - 6: (LLD round - 45 mins)
The interviewer gave me requirements to develop a 2D board-based game and asked me to come up with different approaches for data representation and algorithms to identify various game states, keeping in mind low-bandwidth and low-RAM mobile devices. I provided three approaches and discussed various trade-offs.
Feedback positive; proceeded to the next technical round.
After this round, I had to wait a week to schedule my hiring manager round.
4. Interview round - 7: (Hiring Manager round - 45 mins)
This round began with a discussion of my profile and current work. Then, I was asked to design a search engine for flight search scenarios. I asked clarifying questions to limit the scope and set expectations on consistency and availability.
After this, HR confirmed positive feedback and I waited for the recruitment HR to get back with an offer, which was received 10 days later.
Things that worked for me: a. Being honest
b. Being prepared
c. My past experience
Lastly, regarding System Design preparation, I started with a course to understand fundamentals and then moved on to various resources and videos. I also follow technical conferences, which gave me exposure to different technologies and designs.