Interview Experience: Microsoft | L61(Hyderabad)
Summary
I recently interviewed with Microsoft for an L61 role in Hyderabad and was selected. The process involved an online assessment, technical rounds focusing on coding, low-level design, and system discussions, followed by a behavioral and technical deep-dive round.
Full Experience
Hi everyone! I recently interviewed with Microsoft and wanted to share my experience in case it helps others preparing.
Overall, the process was very smooth and interviewer friendly. The focus was strongly on problem solving, fundamentals, and practical system thinking.
Online Assessment (HackerRank)
The process started with an OA containing 2 DSA questions. It required Good understanding of data structures and algorithms, handling edge cases carefully.
I was able to solve both.
Round 1 – Technical (Coding – Graphs)
Problem: You are given a graph with possibly multiple disconnected components. Then there are q queries, each containing a node. For each query, you must return the number of other nodes reachable from that node.
So essentially, we need the size of the connected component for that node.
My Approach
I discussed two solutions:
DFS / BFS Traverse each component. Compute its size. Store component size for every node
DSU (Union-Find) Union all edges. Maintain size of each root. For a query node, find its root and return size[root] - 1
I coded both approaches.
We talked about: Time & space complexity of both approaches. When DSU is more suitable. Code clarity and reusability
The interviewer liked that I compared multiple approaches instead of jumping to just one.
Round 2 – Technical (LLD + Coding)
This round was a mix of coding and low level design.
Part 1: Coding
Problem: Given an n x m matrix, print elements in spiral order (return as a 1D array).
The twist: I had to write this in an LLD style instead of just a function.
So I designed:
A Matrix class to store the grid. A TraversalStrategy interface. A SpiralTraversal class implementing the spiral logic. Then I walked through the execution using an example matrix.
Part 2: Design Follow-up
Then he asked: What if we want to support different traversal patterns in future? I suggested using the Factory Design Pattern. A factory that returns the correct traversal strategy (spiral, zigzag, diagonal, etc.). This keeps the system extensible and follows the Open Closed Principle. He seemed satisfied with the extensibility discussion.
Part 3: Search & Systems Discussion We then moved into a more practical discussion:
Topics included: How search works inside applications. Data structures behind search (tries, inverted index, hash maps). How to make search fast (caching, indexing). How to make it personalized (user behavior, history)
This felt more like a real world engineering discussion than textbook system design.
Round 3 – AA Round (Behavioral + Tech Discussion)
This round focused on: Behavioral questions (teamwork, challenges, ownership). Deep dive into some of my past work
We also discussed: How caching works in search systems. AI/ML use cases in my current work. Performance trade offs and scaling considerations
Verdict: Selected
Compensation Details: https://leetcode.com/discuss/post/7513017/microsoft-l61-hyderabad-verbal-offer-rev-m4gq/
Interview Questions (3)
Connected Components Size in a Graph
You are given a graph with possibly multiple disconnected components. Then there are q queries, each containing a node. For each query, you must return the number of other nodes reachable from that node. So essentially, we need the size of the connected component for that node.
Spiral Matrix Traversal (LLD Style)
Given an n x m matrix, print elements in spiral order (return as a 1D array). The twist: I had to write this in an LLD style instead of just a function.
Extensible Matrix Traversal Design
What if we want to support different traversal patterns in future?