Following on from the recruiting event I mentioned Microsoft emailed me for an on campus interview. Thus I had succeed on the resume screening and my next challenge was a half hour in-person interview.
Microsoft flew in two engineers for two days of interviews. We were able to schedule our own interviews through a webapp. Four hours after the interview invitation email I logged into the app and saw only ~5 interview slots blocked off. Since there was capacity for ~48 interviews I had my pick of the prime timeslots.
Worrying over meta interview tactics is distracting yet fun. When is the optimal time to interview? Right after lunch? Definitely not later in the day, but could you interview too early?
After thinking on it for 10 seconds I picked the very FIRST slot on the first day. The decision became much easier when I realized earlier meant less waiting.
The early timeslot also gave me the chance to arrive 30 minutes early, meet the interviewer, and help setup the interview room. With blatant disregard to notions such as “fairness” I also extracted extra interview time with a 10 minute early start.
In my defence I really like interviewing. I also like exams and interviews are like my favourite kind of exam. You go in with nothing to fall back on and you must think your way to the answer. I can only assume this is not a common attitude since my classmates insist on spoiling the fun by studying before exams. Of course Software Engineering wise this attitude would lead to disasterious code duplication and sub-optimal algorithms so I reserve it to exams and interviews.
Interviewer wise the engineer started by classifying my experience and preference: “Configuration-less printing” + “Low & Medium level Systems”. The low level systems might be a bit to generous. When I mentioned my preference he gave me the distinct impression he expected a more popular Microsoft project. I can only imagine how many times people have asked for the Xbox team or The New New thing.
Next he asked a super common open ended question. Every recruiter I had talked to so far had mentioned how “passion” was very important, and this was the question where he want to see it. In anticipation I had a very passionate tale about a yet-announced personal project. This project includes a custom designed algorithm and cool web technologies so it was perfect for the question.
After this came a code design question, take a sub-optimal situation and design the best hacked together work around. The hypothetical situation involved lists. Out of my three interviewing experiences two have featured linked lists. I love this since I spent half a summer using linked lists in libjtapi. Yet I cannot help but worry I’m being mollycoddled, where are the difficult tree and graph problems I’ve been worrying over? My pet theory is that the interviews so far have not been comfortable evaluating C code so they stick to simple problems for their own sake.
Once we agreed on a semi-optimal solution he asked me to code it up. This was uneventful, C is my most favoritist language so I wrote it top to bottom without any syntax errors. We discussed an error case I wasn’t checking for. I prefer things to segfault if the calling function acts silly and passes in a NULL parameter, no risk of someone ignoring an error code. NULL pointers are not something that tend to occur at run time. If you are calling with a NULL pointer it is because you messed up, hiding that is dangerous. Of course I didn’t mention this since we had no time to explore the justification.
This brought the interview to an end, time really does fly when you are enjoying yourself. I thanked him and headed to class.
Overall I though it went well, no further interviews yet but its only been a week.
Update 2012-10-22: I got the next interview set, the in Redmond ones!
Update 2013-10: If you are still interested please consider reading through the overview of my internship.
Hey Daniel, thank so much for your detailed reply. Really appreciate your time in responding.
Will comment back how it goes.
I’ve been reading your blog posts, particularly about interviewing for some time now. I find your interest in Japanese fascinating; what little I know comes from anime.
I read your posts about Microsoft religiously before my Microsoft phone interview, and I made it to the Redmond interview. I’ve gone through Programming Interviews Exposed and am now going through Cracking the Coding Interview. I have limited time and and now sure what subjects to focus on the most. I was wondering if you could give me some tips on studying.
I’m not sure what advise to give in your case, or even if anything I can suggest is better than what you’ve been doing on your own.
The key thing is you are studying. Beyond that I would suggest reading the post http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html
In all cases congratulations!
Hello there, How long usually it takes after campus interview to get any response for internship position?
Thanks for your time.
Hey Liza, you’re best bet is to ask a recruiter. The timeline can vary, for me it was a few hours (they had us hang around in the visting room). Or it could take a week.
I have a phone interview coming up with Microsoft. The email said if I clear this interview I will be invited to Redmond for the second round of interviews. They didn’t tell me what intern position I am interviewing for. I have no coding experience whatsoever, my whole resume is about networking and working with routers, switches, servers and all kinds of networking devices. I do know a little about c++ as I mentioned on my resume. SO, my question is that, is it going to be a behavioral interview or a technical or a mix of both?? what should I expect?
Thanks for the reply.
Hey Gary, I know this is a very old post but I’m in a similar position as you and found this post though Googleing. What kind of questions did you face during the interview? Which position was it? Did you end up getting the job? Thanks!
and also should I expect some coding questions?