Microsoft SDE2 interview experience
Application process:
I applied for this opportunity (SDE 2, level 61) directly from their career portal without any referral. After a few days I got a call from one of the recruiters of Microsoft on first week of August, 2025. This opportunity was for Xbox team and the job location was Noida, UP. He informed me that my resume has been shortlisted for the role and shared a HackerRank test link. He mentioned that once I clear the test, they will call me for an interview drive.
Press enter or click to view image in full size
Online test:
The HackerRank test consisted of two DSA questions and the duration was 1 hour 30 minutes. The questions were medium difficulty level. They were as follows
- You are given a string s consisting of lowercase English letters, and an integer array arr of size n.
You must perform n operations on the string in order from i = 0 to i = n-1. In the i-th operation, consider the segment of the string from index 0 to i (inclusive) and rotate every character in that segment by arr[i] units. Rotation means: for a character'a'→'b'is +1,'z'→'a'wraps around. If arr[i] is negative, you rotate in the reverse direction. After performing all n operations, return the final state of the string.
Constraints:
1 ≤ s.length ≤ 10⁵
arr.length = n≤ s.length
Eacharr[i]can be in a reasonable range (e.g., −10⁹ ≤ arr[i] ≤ 10⁹)
All characters ofsare'a'to'z'
Example:
s = “abcd”
arr = [1, -2, 3, 0]
1. i=0: segment [0..0] = “a” → rotate by +1 → “b”; string becomes “bbcd” (actually only first char changes)
2. i=1: segment [0..1] = “bb” → each rotate by −2 → “zz”; string becomes “zzcd”
3. i=2: segment [0..2] = “zzc” → each rotate by +3 → “ccf”; string becomes “ccfd”
4. i=3: segment [0..3] = “ccfd” → rotate by 0 → no change → “ccfd”
Output:"ccfd" - I can’t remember the exact problem statement of the second question. But it was a medium level problem on sliding windows.
Each question consisted 15 test cases and I was able to pass all the test cases for both of the problems. After a few days I got a call from the recruiter and got to know that I have cleared the online assessment and they shared the interview invitation for further rounds. All the rounds were scheduled on Microsoft Teams platform.
1st round — DSA + System design round:
After almost 2 weeks of clearing the online test, the interviews got started. Since it was a hiring drive, a lot of candidates were getting interviewed on the same day and due to limited availability of the panel members, system design round was conducted first. At around 09:00 a.m. morning, the round started. It seemed like the interviewer just woke up and joined the interview. 🙃
Problem Statement:
Design a simplified version of Twitter — a social networking platform where users can post tweets, follow other users, and view a personalised news feed.
Your system should allow:
- Users to post tweets.
- Users to follow and unfollow others.
- Users to view the most recent tweets from themselves and users they follow (a timeline/newsfeed).
Functional Requirements:
- postTweet(userId, tweetId) → A user posts a tweet.
- getNewsFeed(userId) → Retrieve the ‘n’ (a given value) most recent tweet IDs from the user and users they follow. Tweets must appear in reverse chronological order.
- follow(followerId, followeeId) → Follower follows a followee.
- unfollow(followerId, followeeId) → Follower unfollows a followee.
Non-Functional Requirements:
- Should be scalable for millions of users and tweets.
- Low latency for fetching feeds (ideally O(log n) or better per operation).
- Thread-safe operations if designed for concurrent updates.
Initially the interviewer just shared the problem statement on high level. Here the expectation was I will ask proper questions to the interviewer and based on the inputs received, we will finalise the requirement.
Once the requirements are gathered, I started with describing the entities (i.e. user, tweet, timestamp, feed etc) associated with the design and discussed their relationship.
Once the interviewer was satisfied with the models, I moved to designing the APIs for the functionalities as confirmed initially. For constructing the newsfeed, I was actually storing all the tweets made by all users and at the time showing the latest tweets I was maintaining one priority queue to store ‘n’ latest tweets. But interviewer was not satisfied with it and asked me optimise the approach in terms of both time and space. Then I realised storing more than ‘n’ tweets for a particular user is actually unnecessary and we can evict the older tweets and keep the queue size always lesser than or equal to ‘n’. I finally implemented the optimised approach and ran the code for a couple of test cases. The round lasted for around 1 hour 30 minutes.
The interviewer seemed satisfied finally and asked me if I had any questions for him. The interviewer was actually part of Xbox team and shared how his day to day activities look like and their culture.
2nd round — DSA round:
Almost after 1 hour of finishing the first round, the second round started. I didn’t have breakfast before starting the interviews so after joining the meet I asked for some extra time. He was very polite and made me comfortable 😇. He allowed me to have time and come back. After 10–15 minutes I joined back. The round started with basic introduction from both the sides. He mentioned that he is part of some team which works kernel level migration. Then he shared HackerRank code pair link and asked to share screen. The questions for this round were as follows.
1. The problem statement was same as Longest Common Prefix.
2. The second problem was related to graphs and backtracking. I don’t remember the exact problem statement. But on high level it was like you will be given the vertices and the edges of an undirected graph. It may have cycles. You will be given a source vertex and you need to explore all the paths whose sum will be equal to a given sum.
My suggestion to the readers: Never directly jump to write code, even if you know the solution before hand. Always start explaining from the brute force approach. Try to explain the optimised one and take proper feedback. Once you have got clarity that the interviewer is satisfied, then only start writing the code. The interviewer judges you based on your skill to communicate your thought process.
I was explaining whatever I was writing in run time so that we are on the same page all the time. He asked lots of counter questions in the 2nd question. At the end, we discussed about the time and space complexities for the optimised approaches. The interviewer was quite friendly throughout the round and it was very smooth process.
3rd round — Hiring manager round:
This round was scheduled the next day. Actually all the rounds were supposed to be conducted on the same day as part of hiring drive but after two rounds, I had to leave for something urgent so they rescheduled the hiring manager round the next day (i.e. 15th August, 2025 although it was holiday) from 08:00 a.m.
It was basically technical + behavioural round. The interviewer joined on time and started with 5–10 minutes long introduction of her. Then she asked me about
- My current role in my current company.
- The kind of project I am working on.
- How I have resolved conflicts and dealt with stakeholders at critical times.
- What are my vision, strength, and weaknesses.
Almost 30 minutes, the round continued with behavioural questions. Then she started to ask technical questions. I never expected that she will ask system design in this round. The questions were
Design of rate limiter
She simply came up with a high level problem statement. I clarified what is the actual ask here, whether LLD or HLD is required here. She told we need to focus more on the LLD first and if time permits we can discuss about HLD aspects of it. I started with the rate limiting algorithms I knew and explained the token bucket approach in detail. Once she was satisfied with my explanation, she asked me to code up in HackerRank code pair.
Then she asked the below aspects of HLD on it
- How I am going to scale the design. I explained the sorted set of redis approach to deal with it.
- How I will resolve synchronisation issues when I am reading and writing the value of token.
Then she asked another interesting question at the end. If I have a system which is getting affected by virus and I need to hang up the system so that virus doesn’t spread, how I will achieve that. I tried to explain a deadlock situation. She was partially satisfied but since we were almost at the end of the interview, we couldn’t discuss further and the round ended there.
4th round — technical + behavioural round with Director:
So this round was again a technical + behavioural round with the director of Windows Org in Microsoft. This was the final round and initially he started with basic introduction of himself (he has spent nearly 25 years in Microsoft) and wanted me to explain the kind of technical challenges I have faced so far in past experience.
Then he directly jumped to the high level design discussion on job search feature on LinkedIn. We discussed about different models, and services associated with the system, what kind database I would choose for storing user datas, job datas, how I will efficiently process different job filters in the backend to execute the query etc. Almost 45 minutes went into HLD discussion.
Post that he asked some behavioural questions. He wanted to know whether I have worked AI and AI agents or not since their team focuses heavily on it. He also asked what are the tech stack I have worked so far.
Final verdict:
After a few days, I got a call from a manager of Microsoft. I almost ignored the call initially since it was from an unknown number and it was a holiday. But then he messaged me saying he is calling from Microsoft. I called him back and he congratulated me saying I have cleared all the rounds and I have secured the offer from Microsoft. 😇 He asked a few questions like
- Whether I have worked with C++, and C# or not.
- Do I have prior experience with AI agents.
I answered them honestly and he informed that soon I will get formal message and offer letter from the recruiter soon. After a few days I received the offer letter by God’s mercy. 😇

Comments ...
No Comments Yet ...Add One