I applied through an employee referral. The process took 2 weeks. I interviewed at Microsoft in Oct 2008
Interview
It started with a referral from a friend. I was contacted by a recruiter and offered a phone interview, which I accepted. The phone interview took place within a week. The phone interviewer seemed to be technically capable of analyzing my answers. The phone interview questions varied between high-level design questions and low-level technical questions. Overall, she was cordial and happy to answer any questions i had.
I was contacted within a couple days with an offer for the in-person interview. Apparently, they were trying out a new interview format where they bring in 30 or so candidates at a time, all to be interviewed on the same day. The interviews were still 1:1, but all interviews were conducted simultaneously, and the interviews were conducted at 45 minute intervals, with 15 minute breaks in between. It was a little different, but it allows us to socialize with each other and relax a bit before our next interview.
After all interviews were finished, we sat through a couple product presentations, selling us on the products we might be working on. This occurred while the interviewers were making their decisions. We were told that all decisions would be made before we left, which was awesome. After the presentations, I was called out to a separate room along with a small group of other people. We were all given offers; I'm not sure about what happened to the others.
I got to meet the manager of the group I was hired for (who also happened to be one of my interviewers), and we talked about various teams that I could choose to work with. All of the recruiters were very nice and happy to help out. All of the interviewers did their best to sell their teams to me. Overall, it was a great experience.
Interview questions [5]
Question 1
Phone interview question: Describe how you would implement the C standard library function atoi.
Phone interview question: In C, why is it considered bad form for a function to return a pointer to a stack-allocated variable? What happens if you do it anyway?
Determine whether a given binary tree is fully populated, where "fully populated" means that every internal node has exactly two children, and all terminal nodes are at the same depth.
The process took 3 days. I interviewed at Microsoft (Redmond, WA) in Mar 2007
Interview
The process is long and tiring. First there was the screening at my university. This included a few logic questions (geometry, etc.) with a Microsoft engineer. Then a few weeks later came the onsite interview which consisted of 1 on 1 interviews with ~6 engineers going from 8am to after 5pm. Questions there ranged from the purely syntactical (recursively reverse a singly linked list) to more design oriented (designing a radar system to keep track of bowies and their distances from an island, etc.).