Microsoft | L64 | Hyderabad | Feb 2021 [Offer]
Summary
After a year of consistent practice, I successfully interviewed for an L64 position at Microsoft in Hyderabad and received an offer. Despite my client-side experience, I managed to navigate the server-side design questions and secured the role.
Full Experience
My turn finally came after a year of consistent practice and hard work. I have 16 years of experience in a top MNC outside FAANG. The recruiter contacted me on LinkedIn, and I scheduled an interview for the last week of January. I completed three rounds on the same day, with rounds four and five taking place the following week.
Round 1: Coding
This round involved a LeetCode medium question related to strings and palindromes. I was able to explain the naive approach and quickly came up with a better solution, which I coded quickly and answered all follow-up queries. I believe the feedback for this round was very good.
Round 2: Coding
Another LeetCode medium question required me to implement a data structure. I explained the pros and cons of two approaches, discussing performance and memory implications. I was specifically asked to implement it without using STL. After coding, I was asked to review my own code as a third person, where I provided good comments. I did identify one bug after receiving a hint. I also believe the feedback for this round was very good.
Round 3: Coding, Behavioural
I faced three LeetCode easy but tricky questions. I explained the approach for two questions and was not required to code them. For the third question, I was asked to code my approach and was able to improve it further with a hint. A few behavioural questions were also asked. I would rate my performance as good for this round.
Round 4: Behavioural, Design
This round focused on system design, where I was asked to design a small web service for tracking some statistics. Additionally, several behavioural questions related to my past experience were posed. I would say my performance was average overall for this round.
Round 5: Hiring Manager - Behavioural, Design
The hiring manager round involved designing a rate limiter with specific requirements. A lot of behavioural questions were asked about how I handle teams and projects, and how I interact with my manager and team members. I would say my performance was also average overall for this round.
The very good feedback from the first two coding rounds significantly helped my overall candidacy. Although the design questions were based on server systems, and my entire experience has been client-side, the interviewers seemed happy. Based on the feedback, especially from rounds 4 and 5, I was offered an L64 position. I was somewhat happy, though I had been expecting an L65. I received the offer letter after approximately two weeks. Given my desire to move closer to my native place after my 2020 experience, I was content with this offer and ready to relocate to Hyderabad. Compensation details were shared separately.
Interview Questions (2)
Design a small web service specifically for tracking some statistics. This involves conceptualizing the architecture, data storage, API design, and handling potential scale for a stats tracking system.
Design a rate limiter system with specific, although unstated, requirements. The discussion would likely cover various rate limiting algorithms (e.g., Leaky Bucket, Token Bucket, Fixed Window), distributed system considerations, and how to handle potential edge cases or failures.
Preparation Tips
My LeetCode status involved solving over 700 problems. I consistently completed all daily challenges, regularly participated in weekly and biweekly contests, and often ranked in the top 30% after a few initial contests. Reviewing the problems from this list before my interview proved very helpful.