Status: Offered
Role: Software Engineer II
Location: Bengaluru
Experience: 4+ years
It started with a recruiter reach-out, followed by a Codility OA. The OA had two medium-difficulty problems focusing on Arrays and Strings. Once cleared, I had 4 virtual onsite rounds.
Onsite Rounds
Round 1: DSA & Coding
- Focused on Graphs and Dynamic Programming. I was asked to find the shortest path in a weighted grid with some constraints.
- Key: They aren't just looking for the solution; they want to see clean code and how you handle edge cases.
Round 2: Low-Level Design (LLD)
- Tasked with designing a Vending Machine or Parking Lot.
- We went deep into SOLID principles and which Design Patterns (like State or Strategy) would make the code most extensible.
Round 3: High-Level Design (HLD)
- Designed a Distributed Key-Value Store (like Redis).
- Spent a lot of time discussing data sharding, replication, and the trade-offs between consistency and availability.
Round 4: HM / AA Round
- This was the "As Appropriate" round with a Senior Manager. It was a mix of architectural deep dives into my past projects and behavioral questions.
- They really look for a Growth Mindset and how you handle technical disagreements.
Microsoft really values candidates who can explain the why behind their technical choices. If you're prepping, focus on "Microsoft" tagged LC mediums and get your system design fundamentals solid.