Microsoft Software Development Engineer interview questions
based on 1.2K ratings - Updated Jul 22, 2025
Averageinterview difficulty
Very positiveinterview experience
How others got an interview
57%
Campus Recruiting
Campus Recruiting
18%
Applied online
Applied online
12%
Recruiter
Recruiter
10%
Employee Referral
Employee Referral
1%
Staffing Agency
Staffing Agency
1%
In Person
In Person
1%
Other
Other
Interview search
1,152 interviews
Viewing 141 - 145 of 1,152 Interviews
Microsoft interviews FAQs
Software Development Engineer applicants have rated the interview process at Microsoft with 4 out of 5 (where 5 is the highest level of difficulty) and assessed their interview experience as 100% positive. To compare, the company-average is 71.3% positive. This is according to Glassdoor user ratings.
Candidates applying for Software Development Engineer roles take an average of 1 day to get hired, when considering 1 user submitted interviews for this role. To compare, the hiring process at Microsoft overall takes an average of 46 days.
Common stages of the interview process at Microsoft as a Software Development Engineer according to 1 Glassdoor interviews include:
Phone interview: 100%
Here are the most commonly searched roles for interview reports -
The process took 2 weeks. I interviewed at Microsoft (Herzliya) in Jan 2017
Interview
It was a great experience. Was asked three questions and answered all correctly reaching the optimal solution for all with a bit of help from the interviewer. I was calm and confident and overall had a great interview. I was given negative feedback though, which was shocking and displeasing.
I've applied to FTE positions for years on their public site, and never gotten anywhere. However, this time I had an internal recommendation. So I went from applying to in an interview loop within a week. No phone screen or pre-screen of any sort.
The full interview process was comprised of 4 one hour interviews, with various Program Managers and Software Engineers. We did white board coding and talked a lot about my past work. They seemed to really appreciate that I have an UWA in the store already, with good reviews.
After the interview, it took about a month to get my offer, however, this was also over the Christmas holiday season. Some delays where due to approvers being on PTO.
Interview questions [1]
Question 1
I was sked a variety of questions surrounding the more advanced areas of C# and JavaScript.
I applied through an employee referral. The process took 2 months. I interviewed at Microsoft (Redmond, WA) in Jan 2017
Interview
I was referred by a friend of mine currently working at Microsoft. I first did a 45 minute on-campus interview which consisted of one easy question plus some behaviorals. Unfortunately, Microsoft had fulfilled their hiring quota for the year, but a spot opened up in mid-December and I scheduled my on-site to be in January.
The on-site consisted of five interviews about an hour long each, with some standard data structures/algorithm questions plus one system design question. The fifth interviewer also asked some behaviorals. The algorithm questions were probably around LeetCode Medium level.
Interview questions [5]
Question 1
Given a list of n unsorted key-value tuples which are too large to fit in memory, return the k tuples with the greatest value where n is several orders of magnitude greater than k. This list may be dispersed across multiple machines.
Given a tree of order n which is neither complete or a search tree, write a function to construct a new tree of order m in-place. Memory usage is bound to 2 times the size of the tree. The new tree must be complete, and a node A cannot be a child of another node B in the new tree if A was an ancestor of B in the old tree.
Given a list of movement commands (up, down, left, right, undo previous action), write a function that returns the final (x,y) coordinate. Followup: how would you handle other kinds of commands and undoing them? What kind of design pattern is this?
Given two very large timestamped sorted log files that do not fit in memory (possibly on different machines), merge them in timestamp order. Provide some test cases.