Applied through the Microsoft website and interviewed on-campus. I was pleased to hear that I was selected to be flown up to Seattle and interview with the online services division (Bellevue, WA not Redmond). I will state early on that I completed the interview process and received no offer - however, with that said, I will be as objective as I can be about the experience.
Firstly, understand that although Microsoft does every single thing possible to try to show how "fun" they are, by far the number one thing the interviewers look for is the ability to think and code just like any other large software company. Everyone who says that it's important to be social and personable at Microsoft must have interviewed with a different division. With online services, all that matters is coding, problem solving, and wanting to tackle new problems.
During your day you will have four 45 minute interviews, with 15 minute breaks in between. After that you will hear immediately whether or not an offer will be extended. This is absolutely amazing by Microsoft. To have that feedback so instantaneously is incredible and truly first-class of the company. These interviews will be intimidating to say the least and I can virtually guarantee you that you will run into one or two people that you really like and think are cool, and one or two that make you second-guess if you really want to work there.
Each interview has a coding question. My four were as follows:
1) Given the in-order and preorder traversals of a binary tree, rebuild the tree.
2) Given a sparse n-by-m matrix, find the number of distinct paths within that matrix (each cell can be off or on, find the number of distinct sets of connected cells).
3) Given the Android 3x3 matrix lock screen, generate all the possible unlock combinations that one can enter.
4) Given an array of integers, find all the unique elements.
I botched the first question. It was 8AM in the morning when I attempted it and I had been up since 6:30. To be quite honest, I had forgotten to review the tree algorithms. I met with the interviewer and he literally bombarded me with questions. If you say *anything* be prepared to defend it and back it up. There is also a strong sense that you must be very, very interested in working for Microsoft. As one Microsoftie put it, "the people who work at Microsoft choose to work there because they love Microsoft, it's not that they cannot work for Google or Apple".
There is little to no review of your resume. The emphasis is pretty much solely on your ability to code relatively generic, albeit challenging, programming problems. This can work to your advantage or it can be a disadvantage. To ace the interview, simply read a number of programming problems and study up on the division you are interested in. At one point in time, I was asked: "if you were given a farm of 1000 computers, say, what problem would you try to solve?". Find something that Microsoft is trying to solve, or some generic problem in the division for whom you are interviewing.
As I was not extended the offer, I cannot precisely tell you what it takes to succeed in the interview. However, here are a couple of observations I made (some of which are listed earlier):
1) Read up on the division for whom you are interviewing and understand their business well.
2) Read up on many, many coding questions. If you read enough problems, chances are you will have heard a problem similar to the one you are trying to solve.
3) I cannot stress this enough, but to succeed you *must* ace the first interview you have. I told you how I botched the first question. I did not think to use recursion. In a later interview I had a question that could have used recursion (implementing a BFS), but I chose the iterative process. The interviewer remarked to me, "your first interviewer noted that you don't use recursion, why don't you?". These interviewers talk to each other in between! As such, you must absolutely make a good first impression.
If you can interview with Microsoft, it is a cool experience. You get two free nights in a nice hotel room and all your expenses paid. It makes for an awesome trip to Seattle. However, I really wish Microsoft would cut down on the number of people they bring to Seattle. Reading through Glassdoor, you will see *a lot* of people are not extended offers. Why bring these people if you don't extend a great deal of offers? I feel their current system unfairly generates a lot of false hopes.
If you are interviewing with the big M, I wish you the best. You will have a fun experience and it will be really cool to even just walk through those doors once. As the guy who told me the sad end-of-day news put it, "we receive 10,000 resumes a week, and the fact that you made it this far attests to your skills". Be proud that you received the interview and enjoy your experience!