Microsoft L61 Interview experience | Low chances
Summary
I initially believed my chances for the Microsoft L61 position were low after struggling in the final technical round. However, after a challenging but ultimately successful interview process, I received an offer seven working days later.
Full Experience
I recently interviewed with Microsoft for an L61 position and went through four distinct rounds. Despite feeling confident after the first three rounds, I believed I significantly underperformed in the final round, which led me to think my chances were slim. However, I persevered, learned from the experience, and was delighted to receive an offer seven working days after my interviews.
Round 1: Data Structures & Algorithms and Database Concepts
This round focused on coding and fundamental database knowledge. I was presented with a problem to Count Number of Distinct Subsequences and asked to explain and implement all approaches, from a recursive solution to a dynamic programming approach, and finally a space-optimized DP solution. Additionally, there was an example-based question related to database normalization. I felt this round went very well, as I successfully coded everything required.
Round 2: High-Level System Design
The second round was purely focused on High-Level Design. I was tasked with designing a URL Shortener service. I believe my design explanation and approach were well-received, as the interviewer seemed satisfied and ended the call early without any further questions.
Round 3: System Design and Architecture Discussion
The third round also involved system design, but with a personal touch. I was asked to share the high-level design of a significant system from my current company. This discussion also went smoothly, and the interviewer seemed content, concluding the call ahead of schedule.
Round 4: Algorithms & Problem Solving (Challenging Round)
This was the round where I encountered significant difficulty. The problem given was Rotate Image, which involves rotating a 2D matrix by 90 degrees. I struggled to identify the optimal pattern. When I proposed an initial approach, the interviewer suggested a completely different strategy, which I couldn't quickly grasp. Ultimately, I proceeded with my own solution, which turned out to be only partially correct. The interviewer pointed out that my code would only work for a 4x4 matrix and would fail for odd-sized matrices like 3x3 or 5x5. Despite having 10 minutes left and offering to fix it, the interviewer ended the call after finding this critical mistake. I felt disheartened, as it seemed all my months of hard work had gone to waste. However, I remain committed to fighting back and continuing to hustle, as LeetCode has taught me.
Interview Questions (4)
Given two strings S and T, count the number of distinct subsequences of S which equals T. I was asked to discuss and implement all approaches, from a recursive solution to dynamic programming, and finally a space-optimized DP solution.
Design a high-level system for a URL shortener service, covering aspects like database schema, API design, scalability, and handling collisions.
Discuss the high-level design and architecture of a significant system or service from my current company, including its components, data flow, and key technologies.
Given an n x n 2D matrix representing an image, rotate the image by 90 degrees (clockwise). I struggled to find the optimal pattern, and my initial solution only worked for specific sizes like 4x4, failing for odd-sized matrices such as 3x3 or 5x5. I was also given hints for a different approach which I couldn't fully grasp.