I had a phone interview with the college recruiter to whom I dropped my resume during Microsoft's career event on campus. She asked general questions about my background and why I wanted be a program manager. She then asked me to design a calculator. It's an open-ended question so be sure to first ask who this calculator would be designed for (scientists, children, students, etc). Be detailed and specific about the features and design and provide good justifications for each design choice. Second question asked for a "fun" or "extra" feature I would add to the design after the basic requirements were designed.
Recruiter was prompt about my tight deadlines (already had 2 offers) and I managed to fly out within 2 weeks of phone interview. On site, I arrived at Building 11 Microsoft campus. I spoke with with another recruiter. She asked me what I was looking for in my position, if I knew what a program manager did and asked me if I had any questions.
After the recruiter chat, I was sent off to my interviews. I had five of them. The first four interviews went very well. All interviews revolved around different issues a program manager would face. They were all drawn from actual issues that these particular interviewers faced. They were essentially design questions and they are looking for people who can anticipate all the technical hurdles and issues a design idea would have when implemented. Also, provide good justifications for every design choice you make.
Fifth interview was technical and the interviewer was cranky and extremely rude (he didn't even introduce himself). He asked me to reverse each word in a string in C. I told him I wasn't comfortable in C and would do it in Java. He seemed irritated by this, but I went ahead anyway. I wrote it out, but as I was, he mentioned I couldn't use functions like tokenize, so I said I'll implement my own version of those functions later (despite the fact that the whiteboard was really small and really had no space). He didn't seem to be listening to my justifications for each line as I went along, so I kept having to repeat myself. It didn't seem like he cared what I was saying. There's ways to do it without tokenize, etc but I could have explained that to him after I finished my original method. Then he asked me a brain teaser which I didn't really do very well on and he said my method (which wouldn't work, but I was testing it out) was a "dumb way" to do it. All in all a terrible interview, but I felt OK as I had other offers and didn't feel like much was riding on Microsoft.
After all five, I returned to the original recruiter I chatted with in the morning and told her about the fifth interviewer, who seemed apologetic about it and then was driven back to the hotel.