First I had an on-campus interview with a recruiter with an easy coding question. A bit later they told me they wanted to fly me out to Redmond for on-site interviews. First I met with a recruiter who told me what the rest of the day was going to be like, then they called a shuttle to take me to another building for the interviews themselves. The first interviewer greeted me in the lobby, took me to the kitchen to offer me a drink, then led me to his office for the first interview. Each interviewer generally started by asking me about myself, asked a coding question, asked me to optimize my solution, asked how I should test my solution, then gave me some time to ask them any questions I had. This took about 45 minutes total per interview. Then they would take me to the kitchen to offer me another drink then pass me off onto the next interviewer. One interviewer in the middle took me to lunch, where we ordered our food and took it to his office to eat during the interview. I think there were 5 interviews total, all with members of the same team. Then I took a shuttle back to the first building, where the recruiter from that morning did a debriefing and sent me on my way.
They were all very nice throughout the process, and when I asked them questions, they were very honest in their responses, telling me both the pros and cons of working at Microsoft. The company was also very generous with respect to what they would pay for, especially food.