Microsoft SDE Intern Interview Experience
💼 LTIMindtree Interview Experience (On-Campus) | Fresher | 2026
Salesforce SMTS | Interview Experience | Rejected
JPMC | SDE2 (Associate) - Java Backend - Interview Experience + Compensation
Microsoft - SDE2 - Coding Round
Microsoft | L63 | Senior Software Engineer | Selected
Summary
I, a backend developer with 9 years of experience, successfully navigated a challenging interview process at Microsoft for an L63 Senior Software Engineer role. Despite a short preparation window, I received an offer, realizing a long-held dream.
Full Experience
I started my journey after putting in my 2 months notice on May 26th, 2024, having received an offer from MasterCard. My initial goal was to join a decent organization and continue preparing for FAANGM/MAANGM companies over the next couple of years. On June 13th, 2024, I was pleasantly surprised to find an email informing me that my profile had been shortlisted for an interview at Microsoft, requesting me to appear for an online test within a few days. Despite my plea for a week's preparation time, they didn't budge. I felt I had little chance, having only solved about 150 LeetCode questions and a handful of design problems.
Online Assessment | Coding | 90 min
- Q1: A variation of the Buy-Sell Stocks with at most K transactions problem.
- Q2: Given a function
calculateSum(str)that processes adjacent character pairs in a string to populate a count array and returns its sum. My task was to generate a string (max length 100) to maximize this returned sum, earning points based on the sum range (e.g., 80-100 for maximum points).
A day later, I received an email confirming I had cleared the OA and was invited for further interview rounds, all scheduled for a single day, giving me a week to prepare. Again, my request for more time was denied. To gear up for the 'loop day,' I completed NeetCode 150 and watched numerous HLD and LLD videos from YouTube.
Round 2: Algorithms & DS | 1hr
- After an introduction and discussion about my role and responsibilities, I faced a coding problem based on merging intervals. While I don't remember the specifics, I was asked to code the logic in a shared UI.
- We went past the 1-hour mark while I was coding, and the interviewer eventually asked me to stop and elaborate on the remaining code before concluding the interview.
- Verdict: Pass
Round 3: Algorithms & DS + Design | 1hr
- Following introductions, I was given a coding problem: Kth Largest Element of Two Sorted Arrays.
- I discussed multiple possible approaches and finalized an optimal solution using binary search with constant space. This time, I wrote the code and successfully ran it.
- Next, I was asked to design a job scheduler service that could queue user-submitted tasks and execute them, scaling up to millions of tasks daily.
- Despite being slightly tricky, I managed to present a satisfactory HLD and LLD after discussions with the interviewer.
- Verdict: Pass
Round 4: HLD & LLD | 1hr
- This round involved a deep dive into a couple of my past projects, where I was questioned extensively on database and service design choices. Given my experience as a Lead Engineer, having worked on projects from scratch, I was able to answer effectively.
- I was then asked to come up with the HLD and LLD for a 'Step Counter' service that included an incremental rewards program for users.
- I quickly created an acceptable high-level design and then detailed the APIs, database table design, and low-level classes, subclasses, and interfaces.
- Verdict: Pass
After these rounds, I was asked to appear for a Hiring Manager round on the same day.
Round 5: Hiring Manager | 1hr
- This round was conducted by a Principle Engineering Manager from Microsoft U.S., who had about 20 years of experience.
- I was asked complex questions about technical leadership, mentoring developers, and handling specific scenarios as a technical leader.
- The follow-up questions required me to think deeply about my understanding of technical lead responsibilities and the qualities needed to lead a team.
- Verdict: Pass
I believe that my experience working on projects from scratch and my ability to communicate my thoughts effectively were my core strengths and helped me immensely. The coding and design problems felt relatively straightforward, and the interviewers were often helpful, providing hints when I was on the right track. It's surreal to think I almost didn't appear for the interview, feeling I had no chance, especially with all rounds scheduled on the same day and minimal preparation time while working full-time. Sometimes, you just have to show up.
Having read on LeetCode that Microsoft recruiters often take a long time to provide feedback, I called the recruiter the very next day to request a quick update. She stopped me mid-sentence to inform me that my feedback was positive and an offer would be rolled out soon. I could barely believe it – a dream come true for someone who had always aspired to work at Microsoft. It's been a couple of weeks since I started working here, and the experience has been amazing.
Interview Questions (5)
A function named calculateSum was already given that took a string value str as parameter and returned an integer value. The method initialized an array named count of length 100 with each index holding value of 0. It then iterated over each pair of adjacent characters in the string parameter str and converted it to an integer. This integer value was used as index into count array to set the value at that index from 0 to 1. After completing iteration on string, method was adding up all the values at all 100 indices and returning the sum. Your task was to generate a string and pass to the given calculateSum function such that the sum returned is maximum. Depending on value of sum your string is able to generate, you're given points e.g. 10 points if you can generate a sum between 30-40, 20 points if you can generate sum between 40-60 and so on. Maximum points if you can generate a sum between 80-100. Maximum possible length allowed for the string parameter was 100. If you pass a string of length greater than 100, method simply returned -1.
Design a job scheduler service that can queue up user-submitted tasks and execute them; the service should be able to scale up to executing millions of tasks per day.
Design a 'Step Counter' service which has an incremental rewards program for its users upon completing certain number of steps. This involved creating an acceptable high-level design, and then detailing the APIs, database table design, as well as low-level classes, subclasses and interfaces.
Preparation Tips
I initially had two months after receiving an offer from MasterCard to prepare for FAANGM/MAANGM companies. At that time, I had completed around 150 LeetCode questions and a handful of design problems. For the Microsoft loop day, which I only had a week to prepare for, I intensely focused on NeetCode 150 and watched numerous High-Level Design (HLD) and Low-Level Design (LLD) videos on YouTube.