Interview experience
Microsoft Interview Questions and Answers (2026)
Overview
Section titled “Overview”Microsoft’s SDE loop runs an Online Assessment, 2-3 technical rounds, and often the As Appropriate (AA) round - a senior leader with real veto power over the offer.
Microsoft interview process at a glance
Section titled “Microsoft interview process at a glance”| Round | Duration | What it tests |
|---|---|---|
| Online Assessment (OA) | 60-90 min | 2-4 DSA problems on HackerRank/Codility |
| Technical Interview 1 | 45-60 min | DSA, live coding, problem-solving approach |
| Technical Interview 2-3 | 45-60 min each | CS fundamentals, LLD/OOD, light system design for senior roles |
| As Appropriate (AA) round | 45-60 min | Culture fit, growth mindset, leadership signal - senior leader, veto power |
| HR / offer discussion | 20-30 min | Logistics, compensation, closing questions |
Online Assessment
Section titled “Online Assessment”The first filter for most SDE applicants: 2-4 DSA problems, usually medium difficulty, on HackerRank or Codility, done under a strict timer. Some drives also add a handful of CS-fundamentals MCQs alongside the coding problems.
Common questions
- Array/string manipulation and two-pointer problems
- Binary tree and graph traversal (BFS/DFS)
- A harder problem involving dynamic programming or a design-a-data-structure task
Full round-by-round breakdowns are on the Microsoft interview experience page.
Technical interview rounds
Section titled “Technical interview rounds”2-3 back-to-back rounds, each 45-60 minutes, typically live-coded on Microsoft Teams with a shared editor. Interviewers push for an optimal solution and clean code, not just a working brute force, and expect you to reason about complexity out loud.
Common questions
- Design an LRU cache with O(1) operations
- Number of islands / connected components in a grid
- Word ladder or shortest-transformation-sequence style graph problems
- Merge k sorted lists
- CS fundamentals: paging and virtual memory, database normalization and transactions, TCP handshake basics
The As Appropriate (AA) round
Section titled “The As Appropriate (AA) round”This is Microsoft’s most distinctive step, and it’s worth understanding on its own terms. Unlike a standard technical round, the AA interviewer is deliberately pulled from outside your target team - often a senior individual contributor or manager - specifically to give an independent read on whether you clear Microsoft’s bar for culture and judgment, not just skill. It typically only gets scheduled once the earlier rounds already look positive, which is why candidates often treat an AA invite itself as an encouraging sign - though it is still a real evaluation, not a formality.
Common questions
- Tell me about a project you’re most proud of, and what you’d do differently
- Describe a time you disagreed with your team’s technical direction
- Tell me about a time you failed at something and what you changed afterward
- How do you approach learning a new technology or domain under time pressure
HR / behavioral round
Section titled “HR / behavioral round”A shorter closing conversation covering motivation, logistics, and a couple of behavioural questions - often folded into or run right after the AA round rather than as a fully separate step.
Common questions
- Why Microsoft?
- Tell me about a time you struggled with something and how you grew from it
- Tell me about a time you had to learn a new skill quickly
- Where do you see yourself in the next few years?
Sample answer frameworks for each of these are on the Microsoft HR interview questions page.
Growth mindset: what Microsoft is actually testing for
Section titled “Growth mindset: what Microsoft is actually testing for”Since Satya Nadella became CEO, Microsoft has explicitly built its culture around a growth mindset - the idea that ability is developed through effort rather than fixed at birth - alongside customer obsession, diversity and inclusion, and cross-team “One Microsoft” collaboration. In an interview, this rarely shows up as a question that names the phrase directly. Instead it shows up as follow-up pressure on failure and feedback questions: interviewers are listening for a concrete change you made afterward, not just an honest description of what went wrong. A story that ends at “and I learned to be more careful” reads as weaker here than one that ends with a specific new habit or check you added to your process.
Common technical interview questions and answers
Section titled “Common technical interview questions and answers”Q: How do you design an LRU cache with O(1) get and put?
Combine a hash map with a doubly linked list. The hash map maps each key to the list node holding its value, giving O(1) lookup; the doubly linked list keeps nodes in recency order with the most recently used at the head and the least recently used at the tail. On get, look the key up in the map, unlink its node, and move it to the head. On put, if the key exists update the value and move it to the head; otherwise create a node, insert at the head, and add it to the map - and if the size now exceeds capacity, remove the tail node and delete its key from the map. The list must be doubly linked so that unlinking a node in the middle is O(1) without traversing to find its predecessor. Use sentinel head and tail nodes to avoid null checks at the boundaries.
Q: How do you count the number of islands in a grid?
Treat the grid as an implicit graph where each land cell (“1”) is a node connected to its four orthogonal neighbours. Scan every cell; when you find an unvisited land cell, increment your island counter and run a BFS or DFS from it, marking every reachable land cell as visited so it is never counted again. A common trick is to sink the island by overwriting each visited “1” with “0” instead of keeping a separate visited array. The time complexity is O(rows times cols) because each cell is examined a constant number of times. Space is O(rows times cols) in the worst case - the BFS queue or the DFS recursion stack when the whole grid is one island. If the interviewer adds diagonal connectivity, only the neighbour offsets change, from 4 directions to 8.
Q: Why is BFS the right algorithm for the Word Ladder problem?
Word Ladder asks for the shortest transformation sequence from a begin word to an end word, changing one letter at a time with every intermediate word in a dictionary. Model each word as a node with edges to every dictionary word one letter away; because all edges have weight 1, BFS explores words in order of distance from the start, so the first time you reach the end word you have the shortest path - DFS would find some path but not necessarily the shortest. Rather than comparing every pair of words, generate neighbours by replacing each position with each of the 26 letters and checking a hash set of the dictionary, which costs O(L times 26) per word for word length L. Total complexity is roughly O(N times L times 26) for N words, and marking words as visited when you enqueue them (not when you dequeue) prevents duplicate work. A bidirectional BFS from both ends is the standard follow-up optimisation.
Q: How do you merge k sorted linked lists efficiently?
Push the head node of each of the k lists into a min-heap keyed by node value. Repeatedly pop the smallest node, append it to the output list, and push that node’s next node if it exists. Each of the N total nodes enters and leaves the heap once, and the heap never holds more than k entries, so the complexity is O(N log k) time and O(k) space. The naive approach of concatenating everything and sorting is O(N log N), and merging lists one at a time pairwise into an accumulator is O(N times k), so the heap is the answer interviewers are looking for. An equally good alternative is divide and conquer: merge the lists in pairs, halving the count each round, which also lands at O(N log k) with O(1) extra space.
Q: How do you approach a dynamic programming problem like coin change?
Coin change asks for the fewest coins summing to a target amount. Define the state first: dp[i] is the minimum number of coins needed to make amount i. The recurrence is dp[i] = 1 + min(dp[i - c]) over every coin c that is less than or equal to i, with the base case dp[0] = 0 and every other entry initialised to infinity, meaning unreachable. Fill the table from 1 up to the target; the answer is dp[amount], or -1 if it is still infinity. This is O(amount times number of coins) time and O(amount) space. The general method is the same for any DP: identify the state, write the recurrence that relates it to smaller states, establish base cases, choose bottom-up tabulation or top-down memoisation, then look for a space optimisation - many 2D tables collapse to one or two rows.
Q: What is virtual memory, and how does paging work?
Virtual memory gives every process its own contiguous address space that is larger than the physical RAM available, so processes do not need to know about each other’s memory or about fragmentation in physical memory. The address space is split into fixed-size pages, physical memory into equally sized frames, and a per-process page table maps page numbers to frame numbers, with the MMU doing the translation on every access and a TLB caching recent translations. When a process touches a page that is not resident, the hardware raises a page fault, the OS loads the page from disk into a free frame, updates the page table, and restarts the instruction. If no frame is free, a replacement policy such as LRU or Clock evicts one - writing it back to disk first if it is dirty. Excessive faulting because the working set does not fit in RAM is called thrashing.
Q: How would you design a rate limiter?
State the requirement first: allow at most N requests per user per time window, reject or queue the rest, and keep the check cheap because it runs on every request. A fixed-window counter stores a count per user per window in a hash map or Redis key with a TTL - simple, but it allows up to 2N requests around a window boundary. A sliding-window log stores request timestamps per user and evicts entries older than the window, which is exact but uses memory proportional to N. The token bucket is the usual production answer: each user has a bucket refilled at a steady rate up to a capacity, and each request consumes a token, which smooths traffic while still permitting short bursts. In a distributed setting the counters must live in a shared store like Redis with atomic increment-and-expire, since per-server counters would let a user get N requests through every server.
Q: How do you find the median of a stream of numbers?
Maintain two heaps: a max-heap holding the smaller half of the numbers seen so far, and a min-heap holding the larger half. For each new number, push it into the max-heap, then move the max-heap’s top into the min-heap, and if the min-heap has become larger than the max-heap move its top back - this keeps both halves ordered and their sizes within one of each other. The median is then the max-heap’s top when the total count is odd, or the average of the two heap tops when it is even. Each insertion is O(log n) and reading the median is O(1), with O(n) space. Sorting the buffer on every query would be O(n log n) per query, which is why the two-heap invariant is the expected answer.
Frequently asked questions about Microsoft interviews
Section titled “Frequently asked questions about Microsoft interviews”What is the Microsoft interview process for freshers?
Microsoft’s SDE loop for freshers typically runs: 1. Online Assessment (60-90 min) - 2-4 DSA problems on HackerRank/Codility. 2. Virtual interview loop (3-4 rounds, 45-60 min each, on Microsoft Teams) - DSA, CS fundamentals, and for some drives a light system design or LLD discussion. 3. The As Appropriate (AA) round (45-60 min) - a senior leader from outside the hiring team, invited only if the earlier rounds went well. 4. HR/offer discussion. Total timeline is roughly 4-8 weeks.
What questions are asked in Microsoft interviews?
Coding rounds cover arrays/strings, trees and graphs, dynamic programming, and design-a-data-structure problems (LRU cache, rate limiter) at LeetCode medium-to-hard difficulty. CS fundamentals questions touch OS (paging, virtual memory), DBMS (normalization, transactions), and networking. Behavioural questions are built around Microsoft’s growth-mindset culture - interviewers often ask about a time you didn’t know something and how you closed that gap, not just about clean wins.
What is Microsoft’s As Appropriate (AA) round?
The AA round is Microsoft’s distinctive final interview: a Principal Engineer, Partner-level engineer, or Director from a different org than the one you’re interviewing for, brought in ‘as appropriate’ to validate the hire. It’s not a rubber stamp - reaching it is a good signal, but the AA interviewer holds real veto power over the offer, and a strong AA performance can also rescue a loop with mixed earlier feedback.
How many rounds are there in the Microsoft interview?
Typically 5-6 touchpoints for SDE roles: an Online Assessment, 2-3 technical interviews, the As Appropriate (AA) round, and an HR/offer conversation. Senior or specialized roles often add a dedicated system design round in place of one DSA round.
What is Microsoft’s growth mindset and how is it tested in interviews?
Growth mindset - the belief that ability is built through effort rather than fixed at birth - is one of the cultural pillars Microsoft has emphasized since Satya Nadella became CEO, alongside customer obsession, diversity and inclusion, and ‘One Microsoft’ collaboration. In interviews this shows up as behavioural questions like ‘tell me about a time you failed and what you learned,’ where interviewers listen for a concrete change in your approach afterward, not just an honest admission of the mistake.
Does Microsoft hire freshers through campus placements in India?
Yes. Microsoft runs campus and off-campus SDE hiring in India, concentrated around its development centers in Hyderabad, Bangalore, and Noida, mainly recruiting from CSE/IT/ECE branches. Reported fresher SDE total compensation commonly falls in the roughly Rs 28-40 LPA range (base plus bonus and stock), though this varies by level, college tier, and location - treat any specific figure as an approximate, self-reported band rather than a guarantee.

