Round 1: Codility Test (70 minutes) (This was an online DSA assessment with two questions.)
Question 1: It was an array-based question with a lengthy description. I was able to solve it in O(N) time complexity and O(1) space complexity.
Question 2: It was a 2D Matrix question with a lengthy description. It was a medium-level question. The solution involved traversing the matrix in a peculiar way and using a HashSet Data Structure. Time Complexity O(M*N)
Round 2: DSA Interview (45 min) Given a sorted array, I had to apply two different passes of a variation of the binary search algorithm. Time Complexity: O(log N), Space: O(1)
Round 3: LLD (Low-Level Design) (45 min) LLD Design challenge with a modified version of a distributed cache system
Round 4: HLD (High-Level Design) (45 minutes) A twisted variant of "Notification Engine" with specific requirements, including scalability, consistency, and availability, considering a loan application as a case in point.
Round 5: Managerial Round After an initial introduction and project-related discussion for 10 minutes, I was given a code review task: Identify and fix bugs in 200 lines of code. (Total 45 minutes, but extended to 2 hours as I struggled to solve the problem.)
Overall, the interview experience at Microsoft was pleasant. All the interviewers were pleasant and made me comfortable. Questions were of moderate quality, and the design discussions were challenging yet fulfilling. I highly recommend Microsoft.