I was referred to Microsoft and was directly contacted by HR for interviews. I had the option to interview during a hiring event or beforehand; I chose the latter. The interviews were scheduled in March after several postponements, which allowed ample time for preparation.
All Microsoft interviewers were very professional and receptive to discussion.
Rounds 1 and 2 were scheduled concurrently. Both were coding rounds.
Round 1 (1-1.5 hrs): This felt like a screening round. We discussed my resume, focusing on my experience. I was asked about HashMaps, their time complexities for insert, delete, and get operations. I explained the implementation details of a HashMap to answer these questions. I was then asked about Binary Search Trees (BSTs) and given a question on trees: Connect all nodes to their right neighbors in a tree. The BST was complete, making the question straightforward. I coded the solution and dry-ran it for test cases. The interviewer focused on assessing my confidence in answering questions, even questioning correct answers to gauge my certainty.
I was then asked about Heaps, their implementation, and time complexities for insertion and deletion. I explained how these complexities are calculated. Finally, I was asked about the time complexity of converting an array into a heap; I correctly answered nlogn. The interviewer questioned my answer to assess my confidence.
Round 2 (1.5 hrs): After a brief introduction, I was given a coding question on Codility: Find the maximum width of a tree (not necessarily complete). I initially used the wrong approach but corrected it to use 2i and 2i-1 for child node calculation. I implemented and ran the code successfully, which allowed time to explain my logic and make changes.
Round 3 (1.5 hr Design): This was a design round. After a brief introduction and discussion of my resume, I was given a coding question: Sum of integers represented as a linked list. I discussed multiple approaches and coded an O(n) solution. Due to time constraints, we moved to the main design question: Design a library system. I developed a high-level design, considering metadata, features, CAP theorem, SQL/NoSQL, scalability, and client requests. I explained the design's functionality and scalability.
Round 4 (1.5 hrs AA): This round focused on behavioral questions about my resume and work style.
I received an offer a few days later.