Applied online via website. Got a request for a phone interview about a month later. Phone interview was about 30 minutes and mainly asked like what parts of software you like dealing with (UI, Backend, Application layer etc) and then a test question (how would you test a ____ ) and a small math/logic brainteaser.
Got an email about 3 weeks later saying they would like to skip the next round of phone interviews and fly me out to Seattle for final rounds of interviews. Due to the holidays, the process got delayed a bit, but I set up flight/hotel and my day of interviews.
The whole trip was excellent, I felt like I was really being taken care of. They will reimburse a generous amount of money for things like food, transportation around the city. They even gave me some taxi vouchers on my interview day so I could explore Seattle and I wouldn't even have to pay, and it would get billed to Microsoft directly.
The on-site interview day is a long and challenging day, yet it was still enjoyable. You start out in the recruitment building where all the other candidates will be as well. You'll get individually called out by your recruiter who you meet with first. Then you are taken via Microsoft Connect vehicles to the building in which your team you will be interviewing with works.
I had 4 interviews, all technical. Every interview started out with a bit of resume talk, future plans and things about your time at school. Then we did 1 or 2 programming problems each. The technical problems are pretty industry standard, ranging from string manipulation to data structures, to graph theory. Just be sure to talk your way through them with the interviewer. All the interviewers asked even more probing questions to see how much you know about a subject. They asked me all the way down to actually implementing a hashing function when the topic of HashSets came up. But remember, it's okay to admit you don't know at a certain point!
They seem pretty agnostic about what language you use, and one interviewer even started the interview by saying that he is not a compiler, and will not care if there are small syntax errors. That was reassuring and put my mind to ease for small things.
There is also a lunch interview where you get some a lunch voucher to pay for you and your interviewer's lunch. Very light discussion during lunch, mostly about resume and past projects.
After all this, you will meet with your recruiter back at the recruitment building. My interviews went from 10am-5pm. Like previously stated, they gave me some taxi vouchers and I explored Seattle all night before returning to my hotel and catching my flight back the next morning. I can't wait to start!