I needed to go to Seattle to a friend of mine, so I applied online for a Senior Engineer, Android role. At the time I was unfamiliar with Microsoft ranks, so I didn't realize that I was grossly underqualified for Senior SDE with only 2.5 years industry experience. Luckily they must've realized this and adjusted my application for an SDE II role.
The onsite process was excellent. I would say better Google, who makes you book your own flight. Probably second only to Facebook because they included an excellent breakfast buffet at the hotel I went to. The hotel I got was decent, but the breakfasts contained no meats, which was disappointing. I managed to wrangle the flight times to give me an extra couple of days, and they gave me 2 nights in the hotel and 4! days with the car, which was perfect. Highly recommend.
Interview itself was really fun. Microsoft's hiring process is a lot more granular than other Big N companies, because you apply for a specific team and that's the team who interviews you. In this way, it's more important to impress on a social level, because the hiring folks will be working with you directly.
My interviews were more design and theory focused than normal, but that's not necessarily typical. One thing that stood out to me was that "lunch", was actually the third interview. This really tripped me out because normally you eat lunch with a neutral guy, so I was chatting with my guy and afterwards he's like, okay lets go to my office and do some problems. They pay for your lunch, but be sure not to get the pizzas or grill stuff, because it takes way too long. Get a soup, some bread, and look for cues in the eating pace of your interviewer. Also, this way you wont eat too much and get sleepy.