Microsoft | Senior Software Engineer (SSE) | L63 | India | Dec 2025 | Selected
Summary
I successfully interviewed for a Senior Software Engineer (SSE) L63 position at Microsoft in India and received an offer. The interview process included rounds on DSA, System Design, LLD, and behavioral questions, culminating in a positive final verdict.
Full Experience
Hi everyone — sharing my Microsoft interview experience as a small give-back to the LeetCode community. Really grateful for all the help I’ve received here.
Round 1: Online Assessment (OA) | HackerRank | 135 mins
I received a HackerRank link on my registered email. There were 2 questions, and I was able to solve both within the time limit. I don’t remember the exact problems, but they were DP- and graph-based.
Round 2: DSA & Problem Solving | 1 hour
This round mainly tested coding + problem-solving depth.
Question: Binary Searchable Numbers in an Unsorted Array https://leetcode.com/problems/binary-searchable-numbers-in-an-unsorted-array/description/
Follow-up: What if duplicates are allowed? Does your logic still work?
The interviewer asked me to explain brute force → better → optimal approaches, and we discussed multiple edge cases / variations.
We also had a short discussion about my current project and day-to-day responsibilities.
Round 3: System Design + LLD | 1.5 hours
System Design: Deep dive into my resume projects (scaling, DB choices, Kafka, architecture). I explained my current system end-to-end and answered several follow-up questions.
Coding (LLD style): Each node in a binary tree represents a skill with a score. We need to select any root-to-leaf path with the maximum total score.
This is essentially: Maximum Root-to-Leaf Path Sum in a Binary Tree.
I implemented the optimal solution and discussed test cases.
Round 4: HLD + DSA | 2 hours
Coding: Rotting Oranges https://leetcode.com/problems/rotting-oranges/description/
Project Deep Dive: We drew the architecture of my current work. The manager was satisfied with my design trade-offs and reasoning.
HLD Design: Job Scheduler / Orchestrator Design a service to manage n job types. For every incoming job request, generate a unique jobRunId. For some job types, ensure no two runs of the same job execute simultaneously.
We discussed:
-
parallel job execution scenarios
-
avoiding single points of failure
-
distributed fault tolerance
-
Redis-based locking / leader election considerations
-
observability, tracing, and auditability
Round 5: Engineering Group Director | 1.5 hours
This round was scheduled by HR ~3 days after earlier rounds. The director shared a brief overview of the team, culture, and projects.
Behavioral questions:
- What is your motivation for changing jobs?
- Why not move within your current organization?
- What do you expect from Microsoft?
- Tell me one instance where you failed to do what you were supposed to do — and how you handled it.
Code Review: Reviewed a Java/SQL connection related snippet. I had to point out issues and add comments (resource handling, error cases, correctness, etc.).
Coding: Implement a Java PriorityQueue (min-heap) without using any library.
Final Verdict
All rounds went positive, and I received the congratulations email the same day.
Interview Questions (9)
Each node in a binary tree represents a skill with a score. We need to select any root-to-leaf path with the maximum total score. This is essentially: Maximum Root-to-Leaf Path Sum in a Binary Tree.
Design a service to manage n job types. For every incoming job request, generate a unique jobRunId. For some job types, ensure no two runs of the same job execute simultaneously. We discussed: parallel job execution scenarios, avoiding single points of failure, distributed fault tolerance, Redis-based locking / leader election considerations, observability, tracing, and auditability.
What is your motivation for changing jobs?
Why not move within your current organization?
What do you expect from Microsoft?
Tell me one instance where you failed to do what you were supposed to do — and how you handled it.
Implement a Java PriorityQueue (min-heap) without using any library.