Tuesday, October 16, 2007

Microsoft SDE/SDET Interview in Sydney

I got back from an interview with Microsoft last Thursday. They were hiring for SDE/SDET positions. I won't know the outcome till this Saturday i.e. 21st Oct. How did I do? I'm not sure. I answered all the coding questions right, eventually, but I felt I could have done better. The development manager for one of the groups that interviewed me said I can definitely write code. So I'm assuming that's a compliment, but with interviews, you never know. I only made it to the 3 interview mark, which is typical, but from what I've read online it seems that only people who get 5 interviews get hired. I confirmed this with another recruiter and they said 3 is the typical number per candidate. Anyway, the interview process really is an experience on its own. There were 5 of us in the lobby where we started at 8am. The recruiter, Carrie, warmed us up by giving us some questions about Microsoft. Then she outlined the day, saying that typically the interviews are 3 hours long and if they need more information, they'll have additional interviews after that. Each interview is 45 minutes, with a 15 minute break. My first interviewer was with a development manager, and the second, was with a developer. I had the HR interview last. At the end of each interview, the interviewer will give you hints and tips on improving your coding process, e.g. to use the whiteboard more often for example to lay down your thought process. It was very relaxed, and casual. All the interviewers wore shirts and jeans. The coding questions? Well they weren't that hard, for me anyway. I didn't have to deal with pointers, which I could have, but instead dealt with char strings and arrays, performance optimisation, some data structures. I used pseudocode before I translated one of the functions that I had to write into C++ code, and it worked first time, but then I had to optimise it, which I did successfully. For me I wanted to get the functions right and actually complete them rather than leave them unsolved. I think I did that successfully. The HR interview was alright as well, asked why I wanted to work for Microsoft, stuff about my software company, there weren't any trick questions. After our 3 interviewers, 3 of us were allowed to leave and 2 other people had additional interviews. From what I found out, each of us had very different questions. One guy had to deal with pointers and data modelling, which were quite different from mine. With the 3 of us remaining it seemed like everyone else had bombed in some way. One of them bombed his first interview, the other one didn't finish answering his question, it seemed like I was the only one who didn't do as badly. Anyway we finished at 11am, took a couple of photos, and then spent the rest of the day in Sydney before catching the flight back to Brisbane in the late afternoon.

How to prepare?

Study, lots of study. I read "Code complete", "How to move mount fuji", brushed up on my C++ skills and data structures, and read some more. They can ask you anything, so you have to study as much as you can. Also there's a huge variety of questions. I could not sleep the night before as I was too excited, I'm sure some sleep would have helped me. Microsof really takes care of you by paying for your flights, accomodation, transport and food expenses. I got to stay in the Marriott, which was great!

How did I get the interview?

Prior to the week before the final interviews I had a phone screening with a recruiter. It lasted 15 minutes and she was happy to put me through to the final interviews by the end of the conversation. Your phone screen interview could vary as previously I've had a technical and problem solving interview that lasted more than an hour! Anyway, I was really excited but nervous too as I knew I had a lot to study for. I had only just a week over to study. The good thing was I didn't have to wait months for them to come over to Australia.

Now what?

Now I wait. The skeptic in me says I won't get an offer. I didn't do that bad, but it wasn't my finest hour. Microsoft is still a good place to work as their OS runs on more than 90% of the world's computers and so the impact that I can make is huge. I don't really care how much they pay either, I already have an offer from Boeing (who are waiting for me to decide) but with this opportunity I can't turn down. The good points? I had a great interview experience, and now I can code even better on the board. Have I become a better programmer through reading? Definitely.