Background
- 2019 NIT graduate (~6 years 9 months experience)
- Currently SSE at a product-based company
- Applied to many Microsoft openings in December 2025
Timeline
- Applied: December 2025
- R1 + R2: Jan 9 (Xbox team, Noida)
- R3: Jan 13
- R4: Jan 14 (extra DSA round)
- R5 (Director/AA): Jan 22
- Verbal offer: Jan 22 (but at L61, not L62)
- Offer put on hold: Jan 27
- Offer cancelled: shortly after
Round 1 — DSA (45 min)
Two questions:
-
Heaters — Given house and heater positions, find the minimum radius to warm all houses. I initially over-thought it as a graph + binary search problem. It's actually pure binary search. Took slightly longer than expected but reached a satisfactory approach. Ran out of time to run test cases.
-
Add two large numbers as strings (no BigInteger library) — coded in 15 minutes. Interviewer extended time slightly.
Self-eval: Lean Hire (the slow start on Heaters hurt)
Round 2 — System Design (45 min)
Interviewer was an engineering leader.
Problem: Design JIRA. Focus: how to handle conflicting simultaneous updates to the same ticket description.
- I first gave a lock-based approach (row lock)
- Interviewer wanted more: how to COMMUNICATE the conflict to the second person
- I proposed tracking
session_id → ticket_id → last_read_timestampin one table, and ticket contents withlast_modifiedin another. On update, compare read timestamp vs last modified — if stale, return a conflict error (optimistic concurrency)
Self-eval: Strong Hire
Round 3 — HLD (scheduled next day)
Problem: Design Google Docs.
Standard approach: WebSockets + OT/CRDT. The interviewer went deep on OT vs CRDT — which to use when, and what data structures to store documents.
Self-eval: Strong Hire
Round 4 — Extra DSA (1 hour)
Because R1 wasn't a strong hire, I was given an additional DSA round to decide if I'd proceed to HM.
Interviewer was super chill, based in Redmond.
Problem: Implement Max Stack (without popMax). I gave both the linear and the O(1) time/space solutions, coded in 30 min. Dry ran for 10 min. Then 15 min of casual chat about team and culture.
Self-eval: Strong Hire
Round 5 — HM / AA (Director, ~1h40m)
With the Xbox team director, based in Redmond, ~25 years at Microsoft.
Standard project/behavioral discussion. I asked a LOT of questions about how the company evolved over the years. It became more of a conversation than an interview toward the end.
Self-eval: Strong Hire
How It Went South
- 5 minutes after R5 ended, recruiter called asking for documents — verbal confirmation!
- BUT: they offered L61, not L62 (a downlevel). With no competing offer, I consented.
- Sent all docs the same day.
- Jan 27: Email saying the offer is on hold — the employee who was leaving decided to stay (backfill role no longer needed).
- Shortly after: offer cancelled entirely.
I was interviewing with PhonePe simultaneously and got an offer, but without a Microsoft counter-offer, I got lowballed there too.
Lessons Learned
- A verbal offer is NOT a signed offer. Don't stop other processes or celebrate until you have a signed letter.
- Backfill roles are risky — if you're replacing someone who's leaving, their decision to stay can kill your offer. Ask if the role is backfill or net-new headcount.
- Keep all options warm — I should have kept negotiating with PhonePe aggressively instead of mentally committing to Microsoft.
- Downlevel red flag — being downleveled from L62 to L61 at verbal stage was an early sign the situation was shaky.
- A strong loop doesn't guarantee an offer — hiring is subject to business realities (headcount, budget, backfill) entirely outside your performance.
Interview Prep Takeaways
- DSA: Binary search (Heaters), string math (large number addition), stack design (Max Stack). Medium difficulty, clean code matters.
- System Design: Concurrency and conflict handling (JIRA), real-time collaboration (Google Docs OT/CRDT). Know your consistency models.
- The extra DSA round shows Microsoft will add rounds if one is weak — recover strong and you can still proceed.