This is unofficial, largely anecdote-based advice on getting hired for Explore/Software Engineering/PM roles at Microsoft. This doc mostly covers internship information, but some content (contacting recruiters, interview questions, timeline) may also apply to new grads looking to become a full time employee (FTE.)
I was an explorer intern in the summer of 2016, a SWE intern in the summers of 2017 and 2018, and started full-time as a software engineer in September 2019.
Again: I'm not a Microsoft recruiter, I can't get you hired here, and none of this advice is official. These are my own reflections based on personal experience. I'm putting this right at the top and reiterating it so I don't have to say "my personal opinion is..." in every sentence.
Getting Noticed/Contact Information
- Ping someone at Microsoft to find your dedicated school recruiter, if you have one. Recruiting has recently moved their Find Your Recruiter tool from public-facing to internal-only, probably because the intern program is only getting bigger, more competitive, and harder to coordinate. For this reason, recruiters would really prefer you not email them unless you have super pressing concerns (i.e. exploding offers from direct competititors, etc.)
- If you have a Microsoft-employee-friend willing to give you a referral, have them send your resume, your top accomplishments, and desired role(s) at Microsoft to the recruiter that aligns best to you (they can find out who that is by going to //msw and looking for "Find Your Recruiter" -- only for college internships, or new grads within 12 months after graduation.)
If you were referred, make sure you apply online also. The application is basically only a resume upload: it takes literally about 5-10 minutes. There's no reason not to fill it out when it could massively expedite your interview and hiring process (potentially gets you noticed faster.)
From online application through to hire stage, the acceptance rate for Internship and New Grad roles is approximately 1-2%. The probability of cold applying online to getting a phone screen is about 10%. The probability of making it past the phone screen to final loop interviews is about 40%. The probability of receiving an offer from the final loop stage is around 50%.
So you've been contacted for an interview. Congrats! This process begins in one of two ways: first with either a phone screen or a on-school-campus interview. Phone screens are typically non-technical or close-to-non-technical 30 minute conversations with a recruiter. See the section below for a sampling of questions. You should expect on-school-campus interviews to be more technical despite being about the same amount of time. This appears to be because of a bug in the recruiting system where on-school-campus interviewers are often SWE FTEs from that school who may be lacking comprehensive interview training. Wherever possible, I highly recommend going the general phone screen route (ESPECIALLY for Explore and/or Garage candidates, who may not be able to answer SWE Intern technical questions yet), which are usually conducted by recruiters (and therefore questions are usually behavioral or only conceptually technical--basically anything that a recruiter can memorize is fair game.) In the case of on-school-campus interviews, candidates are typically given a Leetcode Medium-equivalent question to whiteboard or to hand-in for future evaluation. It appears as though this is done mostly at target schools and/or where there are large volumes of qualified candidates to sort through in short amounts of time (big state schools, etc.)
I recommend you schedule your phone screen no later than the third week of October, and fly-out final rounds to be completed no later than the first week of November. The earlier, the better. This advice is especially emphasized for candidates interviewing for any position BUT SWE Intern. For example, there are only ~300 Explorer spots, while there are nearly 1.7-2k SWE Intern spots. Explorer/Garage/PM/Business/etc spots go very quickly; I've seen PLENTY of top students at top schools do exceptionally well in interviews only to be turned away because they waited until December to complete the rounds... and all the spots got taken out from under them in the meantime.
Recruiters are your biggest ally in the hiring process. They're also exceptionally busy (and probably very stressed.) When emailing, put the point of your email in the first sentence -- then go into background detail if needed, just don't hide the punchline in the fifth paragraph of your email. It is acceptable to email your recruiter about once every two weeks. Please do not bug them excessively.
Not getting a response from your recruiter despite repeated emails? Considering marking your email hi-pri (this is a last resort), and ask someone to confirm that the recruiter you've been contacting is still assigned to your school. Sometimes recruiters are moved around without notice.
More than anything, be gracious through this process and respect all recruiters' time.
Interview Question Examples
Assume any questions asked for Explore are also fair game for SWE/etc, since they are in theory "easier".
Phone Screen round
- What is your favorite technology and why?
- What teams at Microsoft are you interested in and why?
- How did you become interested in computer science?
- What is a linked list?
- What is your favorite language and why?
- (Explore) You work in an ice cream shop and step into the back for a few minutes. You return and see a large group of people waiting. How do you serve them?
- (Explore) How would you make a multimedia cookbook for a family of varying cooking skills and abilities?
Explore - PM-y questions (final rounds) Cracking the PM Interview is overdoing it, but good prep for future PM candidates (you will need to re-interview from Explore to be considered for a return offer in a PM role).
- If you were given a keyboard, how would you test the keys?
- How would you test a pen?
- How would you design a calculator for a visually impaired student?
- How would you design a vending machine or a toaster?
- You have a series of numbers from one to one million and there is a missing number; how would you find the missing number? (Solution can also be coded as part of the tech interviews)
- In 2 to 3 minutes, explain a computer to a 5 year old who has seen a computer, but doesn’t really understand what it is or does.
- What is the difference between C and Java/between C and C# and how might this impact design decisions?
Explore - Dev questions (final rounds) Cracking the Coding Interview is likely overdoing it, but good prep for future interviews elsewhere (note that Explorers interested in returning as a SWE Intern within the same team do not need to re-interview).
- What is the best data structure for a phone book with names and phone numbers? Code an example solution and explain.
- Print values in a doubly linked list in descending order.
- Invert a binary search tree.
- Sort an array, stack, and queue in arrays and linked lists.
- Write a program that returns the acute angle between two hands on a clock.
- Keep track of the positions of people in a line. (Note that some questions asked are intentionally vague; ask clarifying questions. Can we consider this a sorted list? I.e. are they allowed to move around or not? What does that movement look like? That detail matters.)
- Remove duplicates in this list.
- Reverse a string.
SWE Intern questions (final rounds) Cracking the Coding Interview is good prep. Leetcode Hard is over-doing it.
- Given two integers m and n, loop repeatedly through an array of m and remove each nth element. Return the last element left. (If m = 7 and n = 4, then begin with the array 1 2 3 4 5 6 7 and remove, in order, 4 1 6 5 2 7 and return 3.)
- Given an array of 0's and 1's, move all of the 0's to the beginning of the array and all of the 1's to the end of the array.
- Write a function that accepts an m x n matrix (array) of random numbers, and use the functions row (times) 2 and column-1 to set the entire array to 0.
- Solve a maze recursively.
- Solve the N Queens problem.
- Keep track of the X most recent entries to a list without duplicates (sometimes framed as a line problem).
- Find the longest palindrome in a string.
Team Placement (Internships)
Team placement works similarly to Google and Facebook in that you do not (typically-- maybe 99% of the time) have the option of interviewing for a specific team; you interview at the company, for a role. You can indicate your choices to your recruiter should you receive an offer (whether or not those choices will make any impact is another story. The tl;dr is that it probably will not). In my experience, most of the people I've known who accepted their offers ended up on teams related to the teams their interviewers are on (same "group" within Microsoft--for instance, SQL Server and COSMOS DB are within the same group but are not the same exact team). This has not held true in all cases, however.
When you list team preferences, you should list realistic choices for your best chance at being happy with your placement (and keep in mind that stating preferences may make no impact at all. You may be a front-end engineer and get placed on SQL Server; you may be heavy back-end and get placed on PowerPoint UI. It's happened, and with relative frequency). Recruiters will likely reference your list for placement if they can, but again, you may or may not get your exact choices: and the more unrealistic you are, the higher the likelihood you get put somewhere unrelated. This means you should not list XBox, HoloLens, or Microsoft Research teams (unless you are a Research Intern--which is the PhD internship--for the latter). Everyone wants those teams, so basically no one gets put on them. It's a better strategy to list 5-10 realistic teams for your best shot.
You can find all of this on Glassdoor, but for the sake of shoving all relevant information into one page -- current going offers for summer 2019 are:
- Explorer Intern - Redmond
- $33/hr (for summer 2020)
- 40 hrs/week
- Software Engineering Intern - First time @ Microsoft - Redmond
- Software Engineering Intern - Explore to SWE Intern conversion - Redmond
- $5000 gross starting bonus
- Software Engineering Intern - Returning Microsoft SWE/PM Intern (SWE/PM Intern <--> SWE/PM Intern) - Redmond
- $5000 gross starting bonus
Additionally, all Redmond interns receive free corporate housing OR a $7000 net housing stipend, a subsidized car rental OR a $1200 net transportation stipend, a $300 net misc expenses stipend (read: pays for checked bags and shipping), a bus pass for the Seattle metro area, reimbursed gym membership, free healthcare (no dental for interns), access to the Connector shuttles to and from work, Intern Day (which has replaced the Signature Event), and more.
After accounting for California taxes and cost of living differences, my personal opinions is that for internships, Microsoft HQ offers are marginally more competitive than Google HQ offers and on par with Facebook HQ offers.
You could end up in a Hilton with breakfast every morning, or you could end up in an Issaquah (read: far af) motel with 1.5 stars on Yelp. These things have both happened to lots of people who took corporate housing. Are you cool making this gamble? If so, cool, take corporate housing. If not, the housing stipend is 200% the way to go; the stipend amount went up to $7,000 as of 12/1/2017, which is enough to pocket money regardless of where you choose to live as long as you don't choose a ridiculous Airbnb/sublet/etc (advice: find other interns to live with and pool your collective stipend power. Trying to find a solo Airbnb might actually be challenging just for logistics reasons alone.)
Are you gonna travel to music festivals or go hiking every weekend? If so, you should take the car option. If not, most interns find that Puget Sound public transit + the Connector system is more than enough. If you choose to forgo a car, you receive a Orca Card (the Puget Sound bus pass) that is topped up with unlimited rides, as well as a $1200 transportation stipend (meant to cover things like ocassional Ubers/Lyfts, etc.)
Intern Day was introduced in the Summer of 2019 to replace the Signature Event. It was an all-day event with a few speakers in the morning, including the CEO Satya Nadella; this was followed by food trucks, lawn games, a beer garden, indoor activities, and a concert. This change was somewhat controversial, as the Signature Event was a major distinguishing factor between Microsoft and other companies. Some interns report enjoying the Intern Day more; other interns report really missing the Signature Event.
For 2020 summer internships, which were conducted entirely remotely, the housing stipend was reduced to $3500. Microsoft shipped a computer (often a Surface Pro) and an extra monitor, keyboard, and mouse to interns for the duration of the internship.
Intern Day was also continued remotely, with Trevor Noah hosting an online, three-hour event that featured a mini-concert from Chance the Rapper and Gryffin and talks from Malala, Luvvie Ajayi Jones, and Melinda Gates.
- Negotiating major SWE offers by Courtney Thurston
- Personal finances for technical people by Courtney Thurston
- Getting a gig by Cassidy Williams-Song
- Everything you need to know about interviewing for Microsoft Explore by Charlotte McGinn
- Preparing for the Microsoft SWE interview by Mei'lani Eyre
- Ten rules for negotiating a job offer by Haseeb Qureshi