
Microsoft Interview Experience
Microsoft Interview Experience for Experienced SE 2, Dec 2025
SE 2
Experienced
Website
8 months
2+ years of experience in C++ and system design (Salary Package: 26 LPA)
Computer Science Engineering
5 Rounds
Application Experience
Applied on a Saturday afternoon through the Microsoft careers portal after editing my resume. I received a scheduling call on Monday, with interviews scheduled for the next day. I was advised to complete the online assessment the same night. There were two interviews scheduled in the morning, with a third interview scheduled the same afternoon after positive feedback. By 6 PM, my HM round was scheduled for the following week.
Preparation
Topics Prepared: LLD, HLD, Design Patterns, DSA, Computer Fundamentals (OS, CN, DBMS), C++, Java
Preparation Tips
Tip 1: For DSA, while preparing different topics, make sure the questions you solve are from random topics. If you can’t solve a problem within 4 hours, revisit the concept. Tip 2: For LLD, learning design patterns should take a maximum of 30 days. Solving problems will help more for your interview.
Resume Tips
Tip 1: Don’t include incorrect information on your resume; the interviewer will ask about it in depth. Tip 2: A 70% ATS score is enough; there is no need to aim for a higher score.
Interview Rounds (5)
Detailed breakdown of each evaluation round, questions asked, and candidate approaches.
Round 1 — Online Coding Interview
This was an online assessment round in which coding questions were asked.
Problems & Questions Asked (1)
Absolutely Minimum
Given two integers, ‘A’ and ‘B', you can perform the following operation any number of times (possibly zero). Change the value of ‘A’ with the absolute difference between ‘A’ and ‘B'. Your task is to find the minimum value of ‘A’ achieved using the above operation zero or more times. Example : ‘A’ = 16, ‘B’ = 6 Here the minimum possible value of ‘A’ is 2. We can perform the operation in the following order: ‘A’ = |16 - 6| = 10 ‘A’ = |10 - 6| = 4 ‘A’ = |4 - 6| = 2. So, the answer is 2. Here |x - y| denotes the absolute difference between x and y. Input Format : The first line contains a single integer ‘T’ denoting the number of test cases, then the test case follows. The first line of each test case contains two single space-separated integers, ‘A’ and ‘B'. Output Format : For each test case, return the minimum achievable value of ‘A'. Output for each test case will be printed on a separate line. Note : You are not required to print anything; it has already been taken care of. Just implement the function. Constraints : 1 ≤ T ≤ 10^5 0 ≤ A ≤ 10^9 -10^9 ≤ B ≤ 10^9 Time limit: 1 sec
Minimum Spanning Tree
You are given an undirected, connected and weighted graph G(V, E), consisting of V number of vertices (numbered from 0 to V-1) and E number of edges. Find and print the total weight of the Minimum Spanning Tree (MST) using Kruskal's algorithm. By definition, a minimum weight spanning tree is a subset of the edges of a connected, edge-weighted undirected graph that connects all the vertices together, without any cycles and with the minimum possible total edge weight. Input Format : The first input contains two integers, N and M, the number of vertices and edges in the graph respectively. The next M input lines contains three integers X, Y and W each, representing each edge of the graph. The edge X Y W represents an edge between vertices X and Y, having weight W. Note: The edges will be passed to the function as a array of arrays. Each array will contain 3 integers, X, Y, and W in that order. Output Format : Print the total weight of the minimum spanning tree. Note: You don't explicitly have to print anything, just return the total weight. Constraints : 2 <= V <= 10^5 1 <= E <= 3 * 10^5 0 <= X < N 0 <= Y < N 1 <= W <= 10^4 where V and E represent the number of vertices and edges respectively. X and Y represent the vertices between which there is an edge. W is the weight of the edge. Time limit: 1sec
Round 2 — Online Coding Test
DSA Round: After a 2-minute introduction, the interviewer presented a PnC question, which I solved in 20 minutes. There were some follow-up questions for 5 minutes. The next question was similar to the Rotten Oranges problem. Since I was familiar with it, I solved it in 15 minutes as well. The interviewer asked follow-up questions for another 5 minutes.
Problems & Questions Asked (1)
Keypad Combinations
What is the number of combinations for four key presses on an analog number pad?
Rotting Oranges
You have been given a grid containing some oranges. Each cell of this grid has one of the three integers values: Value 0 - representing an empty cell. Value 1 - representing a fresh orange. Value 2 - representing a rotten orange. Every second, any fresh orange that is adjacent(4-directionally) to a rotten orange becomes rotten. Your task is to find out the minimum time after which no cell has a fresh orange. If it's impossible to rot all the fresh oranges then print -1. Note: 1. The grid has 0-based indexing. 2. A rotten orange can affect the adjacent oranges 4 directionally i.e. Up, Down, Left, Right. Input Format: The first line of input contains two single space-separated integers 'N' and 'M' representing the number of rows and columns of the grid respectively. The next 'N' lines contain 'M' single space-separated integers each representing the rows of the grid. Output Format: The only line of output contains a single integer i.e. The minimum time after which no cell has a fresh orange. If it's impossible to rot all oranges, print -1. Note: You are not required to print the expected output, it has already been taken care of. Just implement the function. Constraints: 1 <= N <= 500 1 <= M <= 500 0 <= grid[i][j] <= 2 Time Limit: 1 sec
Round 3 — Online Coding Test
LLD Round: This was scheduled one hour after the first one. There was some confusion with the scheduling timetable, but eventually everything was cleared, and the interview started on time.
Problems & Questions Asked (1)
DNS Caching
Design DNS cache optimization. I had to discuss the complete environment regarding the cache (requirements, conditions, etc.) before designing it.
Round 4 — Online Coding Test
LLD Round: This was scheduled after positive feedback from both of the previous interviews. I was asked for any available slots, and since I was free that day, the interview was scheduled three hours after the second one.
Problems & Questions Asked (1)
Project Dashboard
Design a HackerRank dashboard, where a student can submit only one project, multiple judges can create and edit their scores for the projects any number of times, and a leaderboard displays the project with the highest average score.
Round 5 — Online Coding Test
This was the HM round. He spent the first half going through my resume and my past experiences. After that, he asked me to create a synchronized lock with different threads and perform operations on them.
Selection Perspective
My experience working in the core OS framework worked in my favour when I applied for the Windows Core job ID. In addition, I had experience working with different design patterns, which helped me stay calm during the actual interview.
Key Preparation Tips
Prepare DSA thoroughly.
Practice aptitude and puzzle-based questions.
Have at least two good projects on your resume.
Be prepared to explain your projects clearly.
Practice coding problems involving Arrays, Binary Search, DP and Recursion.
Prepare common HR questions such as Tell me about yourself and Who is your role model?
More Interview Experiences

Unthinkable
Software Engineer
Unthinkable Interview Experience for Software Engineer

Schrodinger
Backend Developer
Schrodinger Interview Experience for Experienced Backend Developer, Mar 2026

Emergent
SDE - 1