Round 0: Online Assessment
A link was sent, and I took the test two days after the initial contact. There were two DSA questions on a HackerRank-like platform with a 100-minute time limit. The expectation was to score above 80%.
The first question was a medium-level array problem, and the second was a medium-hard DP problem. I don't remember the exact questions, but they were definitely style questions.
I received the results two days after the online assessment; they were proceeding to onsite interviews. Microsoft is conducting many hiring drives these days, and I was asked for full-day availability on a Saturday. A maximum of four rounds were expected, with elimination after the second and third rounds. Each round was one hour long.
Round 1: Coding Round
This round consisted of two medium-level style questions. The interviewer was a mid-senior level with about 10 years of experience. The first question was related to a prefix sum-based array problem, and the second was about finding the maximum island area in a 2D array.
I struggled with the first question due to nervousness, but the interviewer was very friendly and helped me work through my ideas. It took me almost 40 minutes to complete the first question with working code. The second question was a typical DFS/BFS problem; I used a recursive DFS approach for a shorter implementation. The interviewer initially questioned my base case, but after testing, it worked.
Round 2: Low-Level Design
The task was to design an LRU cache. The interviewer was very senior (~25 years of experience) but friendly. He focused more on fundamentals than complex solutions. He questioned every step to understand my reasoning. I proposed a strategy pattern to keep the design extendable for different eviction policies. The implementation took 40+ minutes as he asked for reasoning at every step.
I enjoyed this round because of the interviewer's approach. The first two rounds were prescheduled, and I waited for further information. I believed the second round went well, but I should have been faster on the first question in Round 1. Luckily, I got a call after lunch that I had been shortlisted and was asked to be available in 15 minutes.
Round 3: System Design
The interviewer was a manager with 12-15 years of experience. The round started with designing a file manager. I clarified functional and non-functional requirements and discussed primary workflows. Instead of a typical HLD discussion, he switched to a coding problem after about 25 minutes: finding the median of two sorted arrays. He only wanted the approach, not the full code. I discussed linear and logarithmic approaches, and we spent about 20 minutes discussing a binary search-based solution.
He then asked a third, HLD-related question about a scaling issue. This round lasted about 1 hour and 15 minutes. It felt like a stress interview, touching on multiple dimensions.
I received a call in 30 minutes that I was shortlisted for the final round and asked to be available in 5 minutes.
Round 4: Hiring Manager Round
The interviewer was a director-level senior person. After a brief Q&A, the main question focused on designing the network layer for a mobile client sending scheduled data to a remote server, considering factors like metered networks and multiple mobile apps using a common client. This round tested my design experience and understanding of networking concepts. I felt confident in my performance.
Result: Two days later, I received an email to submit financial documents, indicating a successful interview. I was offered an L64 position.