I'm relatively new at Microsoft. Additionally, my team here (Managed Languages) recently went through a reorganization, and we're now looking to hire some good Developers and Testers. Naturally, the process of finding and hiring people is on my mind. I went through the grand interview process at MS not long ago, so I figured I'd share some of my interviewing insights here.
The interview process usually begins with a phone screen or campus interview. After that, a candidate may be asked to fly to Redmond for a day of interviews - usually four or five of them across one or two teams. For my internship and full time position I took part in a total of 16 different individual interviews. I became quite familiar with the process. This is what I learned:
The interview is only the end of the hiring process.
It's true that the interview is an opportunity - but it's not where the opportunity starts. What matters more than the interview itself is the knowledge and experience that you build up before your interview. This process starts weeks or months before you talk to Microsoft (or any company, for that matter). What are you learning in class, on the job, or through personal study? Are you interested in new technologies? Do you have personal projects and/or do you contribute to an open source project? Inevitably the answers to these questions determine what you'll talk about in your interview.
The interview is not a test - it's a chance to show your knowledge.
I remember thinking, before my interviews, that they would be a big ordeal that I may or may not get through. I expected that I would face a series of questions, like a test, and I would either know the preordained correct answer or not get hired. That was a silly way to approach the process. In truth, the interview is simply a chance to show what you know. The technical questions do have right and wrong answers, but there are often several ways to arrive at the right answer. Your interviewer cares more about how you think and articulate your thoughts than anything else.
It helps to know who you're talking to.
An interview is not just Microsoft's chance to evaluate a candidate - it's the candidate's chance to evaluate Microsoft. This applies to MS as a whole, as well as the particular team that's hiring. Microsoft is a big company, it publishes many products, and it certainly helps to know at least a little about them. If you have an interview lined up, spend some time learning about that team's products, history, and competitors. This shows initiative and preparedness, and provides good material for discussion in your interview.
Finally, remember that the interviewers is an individual person, just like you. In a day full of interviews you'll speak to a handful of people. They all have their own opinions, experiences, and interests about Microsoft, Computer Science, Seattle and Redmond. There's a lot you can learn from comparing their experiences, and it will help you determine if you'd like to live and work out here.
If you'd like to apply for work at Microsoft, you can find information on the career site. Additionally, if you have interest in the Managed Languages Team, which includes work on C#, VB, F#, IronRuby and IronPython, feel free to contact me through this blog.