Microsoft | SDE2 - L61 | India | March [Offer]

microsoft logo
microsoft
SDE IIIndiaOffer
March 24, 202443 reads

Summary

I successfully interviewed for an SDE2 position at Microsoft in India, navigating through an online assessment, four technical rounds (DSA, LLD, HLD), and a hiring manager round, ultimately receiving an offer.

Full Experience

My journey to securing an SDE2 role at Microsoft in India began in mid-February 2024. I applied to approximately 40 SDE2 positions directly through Microsoft's careers page, without a referral. Shortly after, I received a call from a Microsoft recruiter who scheduled my Codility Online Assessment for the following day.

Round 1: Codility Online Assessment Test (70 minutes)

This round consisted of two problems, which I had to solve within 70 minutes. The recruiter mentioned that passing 80% of the hidden test cases for both problems would ensure progression. One was a very basic DSA problem based on arrays, which I solved in about 10 minutes. The other was a debugging question where I needed to add at most two lines of code to fix a BFS problem, which I completed in 5 minutes.

Three days later, the recruiter informed me that I had cleared the OA and asked for my availability for the next two DSA rounds. I requested to schedule both on the same day.

Round 2: Technical Round - 1 (DSA)

My first technical interviewer was very pleasant, based out of Microsoft's Redmond office. We started with introductions and a discussion about my background and previous projects at Amazon. He then presented two DSA questions:

  1. First problem: It was similar to LeetCode's Asteroid Collision. I had to implement a solution to simulate collisions between asteroids moving in the same or opposite directions. Larger asteroids destroy smaller ones, and if equal, both are destroyed. The goal was to return the state of asteroids after all collisions. I solved this in 20 minutes, including writing test cases and running the code.
  2. Second problem: This was directly Merge In Between Linked Lists from LeetCode. I needed to merge two linked lists, removing a segment from the first list and inserting the second list in its place. I completed this in the next 30 minutes, again with test cases and running the code.

We spent the remaining 5 minutes discussing general topics like work culture and the team/organization.

Round 3: Technical Round - 2 (DSA)

This interviewer was also very friendly. After a general introduction, we discussed my resume for about 10 minutes. He then posed one DSA problem:

  1. DSA problem: This was similar to LeetCode's Cheapest Flights Within K Stops, but with some specific tweaks. The core task involved finding the cheapest route between two cities with a maximum of K stops, but there were follow-up questions focused on C++ implementation details while I was coding. I solved this within 30 minutes, ensuring to write test cases and run the code. I also engaged in discussions about C++ specifics during the solution process.

The last 15 minutes of the round were dedicated to discussing my projects, challenges I faced, and my freelance career.

After two days, the recruiter called to say that both DSA rounds went very well and that they would proceed with the Low-Level Design (LLD) and High-Level Design (HLD) rounds. I again asked for both to be scheduled on the same day.

Round 4: Technical Round - 3 (Low Level Design)

The interviewer was welcoming and charming. We started with introductions and my motivation for joining Microsoft. Then, he presented an LLD question:

  1. LLD Question: I needed to design a system capable of filtering many transactions stored in a database. The system should filter transactions based on user-provided criteria such as customer_id, start_duration, and end_duration.

I began by discussing the general architecture of a filtering system and then devised my solution using interfaces and classes in C++. I was able to solve the core problem in about 30 minutes. He followed up by asking for a thread-safe implementation, which I addressed using mutexes and locks, demonstrating various concurrent filter calls with test cases. He seemed satisfied. The final 5 minutes were spent with me asking about the organization I was interviewing for.

Round 5: Technical Round - 4 (High Level Design)

A senior engineer conducted this round. After a brief introduction, he asked about my most challenging project at Amazon, a discussion that lasted about 30 minutes. He delved deep, asking many to-and-fro questions about the design decisions I made on that project. Following this, he asked me to design a 'Cloud Logging System'.

I used my iPad to draw diagrams on Microsoft OneNote, sharing my screen. I designed a system inspired by how AWS CloudWatch Logs functions. He did not interject with many questions while I discussed the high-level aspects of the system, which made me feel he was satisfied. The last 10 minutes were spent discussing the organization's projects and team size.

This round lasted approximately 1 hour and 20 minutes.

The very next morning, the recruiter called to congratulate me on my performance in all interviews and scheduled the Hiring Manager round for 5 days later.

Round 6: Hiring Manager Round

The interviewer, a VP at Microsoft (L70), was a true gentleman—very calm and composed. He noted that I had solved over 900 problems on LeetCode and stated he wouldn't ask any DSA problems. Instead, he asked, "Microsoft wanted to open a data center. How many physical devices would be required there?" I was quite surprised. I initially approached it from a technical perspective, considering traffic, load, and storage. However, he hinted that I should think less technically and more about the essential elements of an existing data center to estimate the number of physical devices. I then discussed factors like electricity requirements and the area needed. The discussion was very interesting, and he concluded by saying they would extend an offer for sure.

About a week later, my recruiter confirmed the offer, though it took another three weeks for the official offer letter to arrive. I successfully secured an offer for an SDE2 - L61 position!

Interview Questions (6)

Q1
Asteroid Collision
Data Structures & Algorithms

I was given a problem similar to LeetCode's 'Asteroid Collision'. I had to implement a solution to simulate collisions between asteroids moving in the same or opposite directions. Larger asteroids destroy smaller ones, and if equal, both are destroyed. The goal was to return the state of asteroids after all collisions.

Q2
Merge In Between Linked Lists
Data Structures & Algorithms

The second problem was directly from LeetCode: 'Merge In Between Linked Lists'. I needed to merge two linked lists, removing a segment from the first list and inserting the second list in its place.

Q3
Cheapest Flights Within K Stops with Tweaks
Data Structures & Algorithms

I was presented with a DSA problem similar to 'Cheapest Flights Within K Stops', but with a few modifications. The core task involved finding the cheapest route between two cities with a maximum of K stops, but there were follow-up questions focused on C++ implementation details while I was coding.

Q4
Design Transaction Filtering System
System Design

For the Low-Level Design round, I was asked to design a system capable of filtering transactions stored in a database. The system needed to filter transactions based on user-provided criteria such as customer_id, start_duration, and end_duration.

Q5
Design Cloud Logging System
System Design

The High-Level Design round involved designing a 'Cloud Logging System'. I was expected to discuss the architecture and components required for such a system, similar to how AWS CloudWatch Logs operates.

Q6
Estimate Physical Devices for a New Data Center
Other

In the Hiring Manager round, I was asked an unexpected question: 'Microsoft wanted to open a data center. How many physical devices would be required there?' The interviewer hinted at focusing less on technical aspects and more on general infrastructure considerations for an existing data center.

Preparation Tips

I had already solved over 900 problems on LeetCode, a fact that was noted by the Hiring Manager during my final round.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!