Microsoft Interview Experience | 3+ Years Experience | System Design, OOD & DSA | Rejected

microsoft logo
microsoft
· 3y exp
October 2, 2026 · 2 reads

Summary

I interviewed for a Microsoft role (3+ years experience) and completed three rounds covering system design, object‑oriented design, and data structures & algorithms, but was ultimately rejected.

Full Experience

Sharing my Microsoft interview experience for a position requiring 3+ years of experience. The loop consisted of three interviews covering my background, system design, object‑oriented design, and coding.

Round 1: HR + Hiring Manager + System Design

The interview started with approximately 40 minutes of discussion about my CV, previous projects, responsibilities, and technical experience.

We then moved into a 25‑minute system design exercise. I began with a simple single‑client design and expanded it by discussing load balancing, horizontal scaling, and sharding.

The feedback was that I had a solid theoretical understanding, but they wanted more practical system design depth for the target level.

Round 2: Object‑Oriented Design

This interview had two main parts.

Part 1: Class design

I was asked to model an attack‑path system. My design included:

  • Node: ID, name, and criticality.
  • VirtualMachine: a node with an internet‑connectivity property.
  • Database: a node indicating whether it contains sensitive data.
  • Edge: a connection between source and target nodes, with its own criticality.
  • AttackPath: a collection of nodes and edges, plus severity.

The interviewer explained that there was no single correct solution and considered my design good.

Part 2: Path validation / construction

The follow‑up involved implementing a function to validate or construct an attack path from the provided nodes and edges.

I explained my algorithm using an example and implemented part of the logic, but I did not finish the function within the available time.

LeetCode match: I haven’t identified an exact equivalent; this appeared to be a custom OOD exercise.

Round 3: Data Structures & Algorithms

This was a one‑hour session with three coding problems.

1. Maximum consecutive ones with up to K flips

Given a binary array, find the maximum number of consecutive ones when at most K zeros can be flipped.

LeetCode match: 1004. Max Consecutive Ones III — Medium. This is an exact match.

2. Minimum time to burn a binary tree

Given a target node, calculate the time needed for fire to spread to the entire tree through adjacent nodes.

LeetCode match: 2385. Amount of Time for Binary Tree to Be Infected — Medium. Same underlying problem, with infection instead of fire.

3. Message filtering within a K‑second window

Given timestamps, messages, and a window K, return a boolean vector indicating whether each message should be accepted or suppressed.

Closest LeetCode match: 359. Logger Rate Limiter — Premium. The standard problem uses a fixed 10‑second window; my interview version used K and returned a boolean vector.

Outcome and Feedback

Result: Rejected.

The positive feedback highlighted strong theoretical knowledge, clear reasoning, and solid DSA skills.

The main concern was that my demonstrated practical experience—especially in system design for larger systems—was not deep enough for their expectations at the target level. They felt I had the foundation and potential but needed more real‑world system design exposure.

My biggest takeaway is to prepare detailed examples of design decisions from past projects: the constraints, alternatives, trade‑offs, production challenges, and lessons learned.

For anyone who has received similar feedback: how did you build practical system design depth and demonstrate it in later interviews?

Interview Questions (3)

1.

Maximum Consecutive Ones III

Data Structures & Algorithms·Medium

Given a binary array, find the maximum number of consecutive ones when at most K zeros can be flipped.

2.

Amount of Time for Binary Tree to Be Infected

Data Structures & Algorithms·Medium

Given a target node in a binary tree, compute the time required for an infection (or fire) to spread to the entire tree, where the infection spreads to adjacent nodes (left child, right child, and parent) each minute.

3.

Message Rate Limiter with Variable Window

Data Structures & Algorithms·Medium

Given a sequence of log messages with their timestamps and an integer K, return a boolean list indicating for each message whether it should be accepted (true) or suppressed (false). A message is accepted only if the same message has not been accepted in the previous K seconds.

📣 Found this helpful? Please share it with friends who are preparing for interviews!

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!