Over this past weekend I had the chance to go to Bellevue, Washington for a Round Three interview with Microsoft. It was an exciting process, but overall ended up very differently from what I expected.

Early in the process when I was first talking to a recruiter on campus I was told that if I moved forward, I would be called for a phone interview. If that went well, I would have 3-5 interviews on the Microsoft campus. I ended up having two rounds of interviews at Purdue, which made up the first three interviews that some people would have on the Microsoft campus.

I may be wrong, but the impression I got when arriving at Microsoft headquarters was that all of the group I was with had already qualified as an intern for Microsoft. It seemed like we just had to fit with one of the two teams that Microsoft had set up for us to interview with to get the job. Throughout the process the interviewers and recruiters were collecting data about our abilities and interested, and I said numerous times that I was extremely interested in Windows Mobile. It would be a dream job for me to get to help develop Windows Mobile for Microsoft, or get involved with Android at Google. I am really interested in mobile development. If you take a chance to step through my portfolio and look at the things that I’ve done though, you will quickly see that I am an APPLICATION developer. Nowhere do I imply that I am qualified to build an OS.

The first guy that I interviewed with was a Microsoft MVP and senior developer. He made that very clear to me, and even mentioned that he has written 3 OS’s a few times. I was extremely excited to meet him. How cool was it to meet someone that successful and talented? It turns out though that he was solely involved in OS teams. As I mentioned earlier, I’m an app developer. I build windows applications, android applications, and have done a few web applications for LightYear. I have no idea where to start building an OS or any low-level programming for that matter, and seeing as I’m a computer engineer I have not yet had the full cs background to back up the real world experience that I have. To say the least, that interview did not go very well. My interviewer pushed OS questions very hard and made it difficult for me to demonstrate the knowledge that I do have. I certainly was not tying to pretend that I could answer his questions and would have liked to move on and establish a discussion about what I could do, and prove that I was a valuable asset to their team. Interestingly enough we moved on to a discussion of why I chose computer engineering over computer science. I explained that I chose CmpE because I am well-equipped to teach myself anything that I need to know in CS, and have been doing so for 9 years. Concluding with rather harsh criticism for my education choices, I let rather confused.

The next interview went really well. The man I met with was a PM in charge of enterprise solutions. We had a great discussion about my experience and I designed an elevator system for him. I felt very confident leaving that interview. After another hour and a half or so following my second interview, we were asked to put down our preferred team. The first interview did not go well seeing as I am not a good fit for OS development, and the second seemed like more of a second opinion on the first team than an interview for a position. So I listed that I wanted to build apps for windows mobile. By listing that, I may have chosen my own fate. I selected a team that I didn’t really interview for, and ultimately did not receive an offer.

Looking back at my decision though, I do not really know what decisions I had. Unlike some people I did not feel like I actually interviewed for two teams. With that in mind, I really only had one team I could list as a preference and it was a team that I was not a good fit for. Overall I am still excited that I had the opportunity, but I am annoyed that Microsoft chose those teams to interview me. If they had compared the resume that I submitted it would have been quite clear that that was not a good match. I am also annoyed that my interviewer demeaned my major selection. He has the right to ask about it, but it is not his right to insult me or criticize me for expanding my education when I have computer science under my belt, especially for an intern position.

Following the interview I got to explore Seattle. I met Krishna Kannan and Chris Zorn, a student from Purdue and a student from UCF. Krishna had to fly back to Chicago Monday night, but Chris was around so we went sight-seeing. For some reason the rental car agency gave Chris a Mustang, so we took that instead of the KIA Forte that I had.

These are some photos of my adventure:

The photos were cool, but somehow got lost during one of my many website redesigns. I’m sorry. The gallery included things like views of the city, photos of the space needle, Mount St. Helens, and SkyDrive branded soda.

Anyway, thanks for reading. If you found this while looking for tips on a Microsoft interview, this is the advice I have to offer:

  1. Talk about what you do know, and explain how you would learn what you do not know.
  2. Don’t worry about dress. I was nearly overdressed with a shirt and tie.
  3. Be Clear! Make it clear to the recruiters what you want to work with. Just saying Windows Mobile is not enough.
  4. A book or guide on intro CS topics for those of us in engineering might not be a bad idea. Most of the engineering CS theory comes late sophomore, early junior year.
  5. If they offer water, take it. You’ll want it when they start asking questions.

Nathan