My previous blog post details a bit of the process of getting up to this point, so check that out if you need a little context.
Anyway, I went to Microsoft's Redmond campus this last Sunday (Nov. 6, 2011) and it was quite the experience. This is how it unfolded.
Getting there
So the process was all really quite easy. Microsoft will send you an e-mail asking you to fill out a few dates when it's convenient to have the interview date. Eventually they'll select one, or one close to it. You tell them what day you want to fly out and come back, and preferred times, and they'll get you a ticket. You also let them know if you want a rental or a taxi, and if you need a hotel. I needed the hotel and decided to go with the rental car.
That's pretty much it. You eventually get an e-mail with a confirmation number for your flights and more rental car information. So like I said it's quite easy.
I had a layover in Salt Lake City, which wasn't so bad because looking out the tiny airplane windows at the expanse below, I realized I had never seen a mountain before (having lived in Texas all my life) and Utah had them in spades. I kind of decided right then that regardless of what happened with Microsoft, I was going to have a good time.
In Seattle
I arrived in Seattle at about 6:00 p.m., which thanks to daylight savings time means it was pitch black outside. I haven't really kept up with my driving skills in college, so the thought of driving in a city that was not only new to me, but also in the dark, scared the shit out of me.
I picked up my rental (a nice little Kia Forte) from the airport, and loaded up my carry-on in the trunk. I pulled my GPS out of my bag and for the fucking life of me I couldn't find the bit that suctions the back of the GPS to the window. I knew I had packed it but I figured maybe I dropped it. This frustrated me, so I wasn't thinking very clearly. I plugged in the GPS and punched in the address to the hotel. Of course, being in a parking garage, there was no signal. I decided to just get on the highway and hope it picked up the signal along the way. Bad choice.
Because I was frustrated and wasn't thinking clearly, the thought of adjusting the mirrors didn't occur to me, and I realized that I was pretty much blind along the highway. Not only this, I didn't know where I was, nor where I was going. I just knew in a general sense that the airport was south of Seattle, and Redmond was east of Seattle. So I just kinda went north.
Having been driving for a few minutes, I figured it would be a good idea to maybe restart the GPS to see if it would pick up a signal better. Again, this was a mistake. Fumbling with the thing led me to drift out of my lane a little bit in just a matter of a second, and when I looked back up, I overcorrected and almost lost control of my little car. 5 minutes away from the rental car agency on my first day. I decided it would be best to pull over to catch my breath and pick up all my marbles.
I pulled into a gas station parking lot and adjusted my mirrors, waited for the GPS to acquire a signal (finally) and called my girlfriend to calm down a bit.
The Hotel
I arrived at the hotel later that night, and let me tell you, Microsoft spares no expense. I had a king-sized room in a Marriott, which was located in the middle of a little mall. They also give you a very generous daily stipend at the hotel for food. I had salmon and key lime pie that night at the hotel restaurant. Everything's billed straight to the room (i.e. Microsoft), so you just sign the bill and it's all good. It wasn't until I finished eating that I realized how absolutely strung out I was. 6 hours of flying on top of almost dying in a car accident left me a little red-eyed and ready to sleep.
The next morning I woke up at about 6. My interview was at 9, so I wanted to have a lot of time to eat and get everything in order. I had a huge plate of breakfast delivered to my room at 6:15, ate, showered, and dressed. By this time I was on autopilot a bit. It was only when I got downstairs did I start to get a bit shaky.
On Campus
Once I left the hotel I finally got to see Redmond. The night before had been so dark I was vaguely aware of trees but hadn't seen them. In the morning light though, I got a better look and was absolutely astounded. In Texas, we have pretty boring trees, made even more boring by the recent drought and fires. But you fuckers in Seattle have it lucky. I decided then that I was going to have a good day no matter what.
I arrived at the campus about 45 minutes early and found my way to building 111, which I would learn is the recruiting building. There were at least a couple dozen parking spots labeled specifically for interview candidates, only a handful of which had been filled at this point. I headed inside to meet maybe 10 other candidates. After some basic paperwork, we were shown a lounge, where everyone had gravitated to a Microsoft Surface. This is basically a table with a huge touch screen built in probably 3 feet by 2 feet (I don't know I didn't measure it), where you can play different games and presumably do other shit, but I was interested in da gaemz. Here I met a few other candidates, we shot the shit, and played some random tower defense game on the Surface, a racing game, and chess. There were probably other things to do but I was fascinated by the Surface.
A few moves into chess, I was called on by my recruiter. He was very personable and noticed that I had brought along A Game of Thrones, so he made small talk about some of the characters and really helped to break the ice. He briefed me on how the day would go, told me that I was interviewing with the Commerce team, and asked me to clarify some of the answers I had made in an e-mail (primarily what would be key factors in me choosing a job). He also gave me a lot of hints as to kinds of questions to ask to help get information dealing with these "key factors" I had listed. He gave me a business card with the name of my first interviewer, and the building.
Interview One
This is when shit went down. Or at least that's what I worried about. The first guy was actually really easy to talk to, and the first 10 minutes we just talked about hiking and other things completely unrelated to what was at hand. This really helped me get comfortable. Really general questions just about me, why I got into CS, and what interested me about testing. This led to one of those questions like "how would you test this real world item?" I thought I did okay. It's pretty hard to judge if you're spending too much time on small details or if you're doing just what they want you to.
What followed was a pretty cool linked-list problem. Since we were running out of time he didn't want me to code it, just give the algorithm. I was able to come to an answer fairly quickly, maybe just by blind luck, but he seemed impressed and told me that nobody had gotten it that quickly before. I basically felt like I couldn't lose at that point. Time was up and I moved on to my next interview.
Interview Two
Another pleasant interview. She asked about past projects, and I gave her some details of a big project I worked on in my Software Engineering class here at UT. She proceeded to ask me a couple questions. The first was not too bad, and because I had gone into so much detail explaining my algorithm, she seemed confident that coding it would be trivial so we moved on to the second. It was a little bit challenging at first, but through a little bit of software design work I was able to work through it. I started to lose confidence here, thinking that my solution was probably too complicated, although it was correct. This finished my second interview and I was on to the third.
Interview Three
This was a two-part interview with the same person. The first bit was going out to lunch at one of the campus diners. The food was surprisingly expensive, but it was also very, very good. I had a grilled Italian sandwich and tomato basil soup and that was probably about 8 bucks. But it was free anyway because I got a meal card. While we were eating lunch, I asked my third interviewer to be a bit more specific about the responsibilities of my job, about the team I would be working on, and what it was like to be a tester in general. That gave me some time to eat before he started hammering me with questions right back. I explained a bit about some more of my projects and he asked me to explain how I would test a car's braking system.
The second part involved going back to his office and answering another linked list question. This one had me really stumped, and I don't know if it was the problem so much as the fact that I was starting to get fatigued. With a lot of help and standing around feeling stupid, I finally arrived at a conclusion but all my confidence was shot.
Interview Four
This interview didn't go terribly well. She started off asking me why I would like to work for Microsoft. Some more questions like why I would like to be a tester, and then we moved on to the coding part. I about shit myself. The question involved writing a sorting algorithm from scratch. I just couldn't do it. I asked questions but she seemed like she didn't really want to help me. It seemed almost as if she just thought of the interview question a couple minutes before, because maybe some of you won't agree, but I feel like this was a bit much for a whiteboard interview question.
I basically just gave up. She seemed sort of okay with that, and we just say down and continued to talk. She asked me about the basic things to test, like functionality, security, performance, scalability, etc. I gave her answers but I felt defeated. That wrapped up this interview.
Interview Five
My interviewer this time was a hiring manager, and I think he was told that I was pretty much worn the fuck out so he just took me over to a different building and I drank a cup of water and talked about things I liked to do. I mentioned that later that day I was going to meet up with some of the guys from the Microsoft's AHGL team (woot!) and he asked me a bit about Starcraft, and I mostly just explained how it evolved into a spectating experience for me. No tough questions, no code, just catching my breath a bit.
Interview Six
This was the final interview. The guy that actually had a bit more weight behind him as far as putting a number on my head and whose opinion was a little bit more regarded. He seemed like a really personable guy and was pleasant to talk to. He mentioned that he was reading the Steve Jobs Biography, and we talked a bit about the difference between Microsoft, Google, and Apple in general, and how the market was constantly shifting from enterprise sector to consumer sector.
Then the conversation turned to more pressing matters. He began by asking me to describe the details of this big project that I did in college. How all the classes intermingled and such. I feel like I did a pretty poor job, mostly because it was last semester and my memory was failing me pretty hard. This led into the standard "2 strengths, 2 weaknesses" question, and he asked me to elaborate a bit more about the weaknesses and how I was trying to overcome them.
Next we had a coding question. It was another tree, and I hate trees. But the question wasn't awful and I quite enjoyed it as just an algorithmic approach. He wanted production-quality Java code though, so I had to be careful to capture all of the corner cases and possible pitfalls of my algorithm, but I ended up giving a nice answer that covered everything.
Wrapping Up
I took a shuttle back to the recruiting building where I met up with my recruiter again. He asked me to recap how the day went and how I felt about things, how I felt about Microsoft afterwards, and because he knew I have an upcoming interview with Google, what the strong parts of each company are. Pretty short and I was in a bit of a rush, because I had set up dinner to hang out with some members of the Microsoft AHGL team.
Dinner with AHGL guys
I met for dinner with about 5 other guys who play Starcraft and work at MS, including MegumixBear, Cowsrule, and Bey from the Microsoft AHGL team. I was mostly pretty quiet because of how exhausted I was, but regardless the Thai food was very good and the guys were all very nice, so I certainly appreciate that.
Went home, slept, and other shit happened
Yeah I have already written an over 2,000 word essay already, and I am starting to get pretty exhausted. These details are not at all important, as I know most of you guys just wanted to hear about the interview process. I might come back and edit this bit for more closure later.
However...
All-in-all I thought very highly of the Microsoft interviewing process. It was certainly rigorous, but Microsoft has made it enjoyable by being very accommodating (hotel, food, rental, flights, everything). I did not feel confident at all about the interviews, mostly because of interview 3 and 4. But I still had a bit of hope. I got home at about 10:30 p.m. yesterday, suuuper exhausted from traveling. But laying in my inbox was a little ray of sunshine. My recruiter had gotten back to me. He said the group had very quickly decided that I was Microsoft material, and that they would like to extend me an offer.
I received the offer information over the phone earlier today, and I'm still actually reeling from everything. I don't know if my brain has fully processed it all, but that's okay. That's a burden I'm willing to endure.
EDIT: I would like to mention that I haven't accepted anything as of yet. I still am going to interview with Google. It won't be this week, like I thought, but some time next week.
(2600 words according to MS word. Wow, wtf was I thinking.)