Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm curious how difficult it really is to get a job working for Microsoft. Is Microsoft similar to Google in a sense that they hire people who are really good at programming?

Also, does participating in communities such as the forums at Microsoft help (if at all) you with getting selected for an interview ? How about being a MVP in something like C# and/or .NET?

Edit: This question refers only to programming jobs.

share|improve this question
2  
How do you measure difficulty? I could guess there are thousands of applicants or more for positions at Microsoft and they can be rather selective. Don't forget that there are those outside of development that are part of the company,e.g. accountants and marketing people. – JB King Nov 24 '10 at 22:54
For one thing, it is important to know the theory of Pythagoras. Something about the harmony of the planets or whatever. Anyway, I don't work for Microsoft - but I did bomb two interviews. – Peter Turner Nov 27 '10 at 1:29

closed as too localized by Thomas Owens Oct 25 '12 at 20:57

This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, see the FAQ.

6 Answers

Microsoft was my first employer after college, via a contract assignment that quickly turned into a full-time role; I stayed a little under 7 years. My circumstances are unusual, because I started during the dot-com boom, and had no formal computer science background; I was attractive for my (natural) language skills combined with technical competence built over a childhood (and early adulthood) of experimentation with computers, when Microsoft was investing a great deal of energy into internationalizing and localizing Internet Explorer.

Given my background, getting noticed by HR would have been the biggest hurdle; the agency temporary role made that easier, since I was introduced by a hungry third-party. The "bar" for hiring an agency temporary is usually considered lower, and usually there's slightly smaller number of interviews, and managers are willing to take more risks on people that they consider disposable.

For anyone with better paper qualifications, is it "difficult?" Based on the sheer number ratio of initial contact to actual hire, you could say yes. But is it more difficult than any other technology company? I can't say that it is. The interview process at Zillow was fairly similar (though the history of the execs there makes that unsurprising). Interviews tend to be fairly technical. Elsewhere, I've received job offers on the merits of what Microsoft would have considered a phone screen, and I've experienced pretty substantial differences on how deep the technical interview was. In most of my recent jobs outside of Microsoft, which presumed a fair amount of experience, I've been able to talk through matters of development practices and philosophy that reveal more to the interviewers in 15 minutes than an hour of a coding exercises would have been, and the coding questions have been minimalist or occasionally nonexistent.

It's unlikely that at Microsoft you'd answer less than 3 substantial whiteboard coding questions during a four person interview loop, even if you were considered a rockstar, and even if you've been employed there before. This is mostly for cultural reasons.

Although we liked to think we weren't so arbitrary as interviewers, one team might think you a good hire and another might not see your merits at all, so a hire/no-hire decision can seem capricious and arbitrary, especially if you've been on either the hiring or interviewing side more than once.

However, if you're intelligent, can code reasonably well under the pressure of a whiteboard, and you can think through problems big and small, you'll have a reasonable chance of making it through the interview process. It's not "difficult" if difficult problems don't freak you out, and simple problems don't catch you off guard.

If you go to an interview there are things that can increase your chances of success:

  1. Be able to write the basic operations of linked lists, trees, and other classic data structures; understand at least one sorting algorithm well enough to be able to write it on the fly with potentially unexpected constraints.
  2. Knowing your time constraints (usually about 10-15 minutes for a typical coding question), ask clarifying questions before you get started; write a minimalist solution as quickly as possible; explain your thoughts while you write code; explain how your code works; explain how it handles, or fails to handle, error conditions. Be able to explain what you would do to improve the code given more time or different project needs.
  3. Be prepared to discuss micro- and macro- design decisions, for systems you've implemented before, and hypothetical projects whose requirements are made up on the fly by interviewers.
  4. Read Skiena's book, The Algorithm Design Manual, so that you'll be able to pattern match problem statements given by your interviewer, and suggest appropriate data structures/algorithms that can help with those problems. You probably won't be expected to write a kd-tree implementation or vertex-coloring algorithm on the whiteboard, but you should know when they would help.
  5. Read the GoF patterns book and the Patterns of Enterprise Application Architecture book, and be able to suggest appropriate application of those patterns to an arbitrary problem.
  6. Be prepared, when your interviewer proposes an alternate solution to a problem you discuss, to discuss the tradeoffs between your solution and theirs. Most interviewers love to see you challenge them, if you do so politely with good justifications. (Some will intentionally propose poor solutions to see how you react).
share|improve this answer
7  
+1, a very thorough overview. – Jas Dec 1 '10 at 22:08

Microsoft is where I spend 90% of my career as a consultant so I'll give you a couple of key insights:

  1. They hire for Microsoft more than for the position. If you can demonstrate in the interview process that you want to do more than just the job at hand (while still articulating clearly and unequivocally your qualifications to do the job) you'll go a lot further than focusing your resume or your interview responses to just the job description. People with narrow interests or visions of their potential career path are no-go's. If you just want the job and don't really care about the company at large or where it could take you, don't apply.
  2. I've seen a lot more people get hired at MS in the last few years via networking with employees vs. cold applications. Network and get an employee to advocate for you and the process will not only move faster it will also be more likely to lead to an offer.
  3. The halcyon days of MS being a path to instant riches are definitely over, but they take good care of loyal employees and are much more focused on developing the people they hire than constantly seeking out the top this-or-that that many newer/younger tech companies tend to do.

Hope this helps.

share|improve this answer

All of the big names in the tech industry pretty much have their choice of candidates, so you'll be competing with many more potential candidates for a particular position than a smaller or less well-known company. So in that sense, yes it's "hard" to get a job there.

But at the same time, their recruitment procedures are not all that different to other companies (in that they advertise jobs, accept resumes and do interviews) so in that sense, no it's not "hard" to get a job there.

Being an MVP and participating in online communities will help you get a job in any company (any company that's worth working for, IMO) so Microsoft is not special in that sense.

share|improve this answer
6  
I'd also suggest that it's not as hard as it used to be. Microsoft's relatively ordinary financial performance (and associated impact on the value of stock options) and shifting market position mean that it's not "the place" to work in the way it was 20 years ago. – Jon Hopkins Nov 24 '10 at 23:37

One of the better ways to get an interview is to build a free/open source tool that a lot of people use. That way they notice you and can eventually contact you and you automatically have better chances since you've cleared at least 2 levels of HR filtering.

other that that it's pretty much the same process as in every other larger company:
phone interview with HR person
2x phone interview with 2 devs
phone interview with a PM
day long live interview which consists of usually hour long 3 pre lunch and 3 post lunch interviews.

share|improve this answer
+1 for open source. Very interesting... Never interviewed in a large company outside of my country, I should try:) – duros Nov 25 '10 at 7:59

Real world story of passing MS interview

Part 1

Part 2

share|improve this answer

Can someone debunk the myth that if you are a Microsoft MVP, your interviews won't be as long and intense as the typical program manager or SDE interviews which can stretch to 6 hours long with lots of white board coding?

share|improve this answer
2  
I can, based on 2 experiences: [1] I worked at Microsoft for 7yrs and left in good standing & with good "metrics" (lifetime average review score, employee level, and multiple Gold Star awards for perf). I re-interviewed with them after several years away. I found the process as lengthy & challenging as my 1st interview loop was. [2] While there, one of my teams interviewed an MVP. Based on questions asked, interviewers' feedback, & outcome, that MVP did not get any breaks in the process. MVP status may make you more likely to get the interview, but it won't be easier or assessed on a curve. – Andrew Brown Jul 7 '11 at 19:17

Not the answer you're looking for? Browse other questions tagged or ask your own question.