I typically have to wait for a few days and accumulate some stories and events before I write on here, but this month has been active enough that I have to be selective of what to share or I’ll just keep typing for days. About a month ago I received a call-back following an interview with Microsoft, asking me to come to Seattle to interview again. I was understandably excited since working at Microsoft would be a dream opportunity for me. After a lot of emails and arrangements, I packed my bag and headed to Seattle. I generally enjoy traveling, and have since I was a kid; however, one aspect of travel is and will always be annoying—for some reason, I always get selected to be searched at the airport. I don’t know what TV shows those TSA people grew up watching, but in the shows I watch, no terrorist has ever looked like me, so really this all seems slightly unjustified. The agents dug through my bag and scanned it twice before handing it back with a look of lingering suspicion.
As I packed everything back nicely I wondered if the contents really did look a bit fishy. Inside were toiletries for three days’ travel, a suit, passport, laptop and a book on secure algorithms. I was missing a few things to achieve true spy status though—mainly a 9mm, an Aston Martin DB5 and probably a speedboat driven by a girl named Ginger.
The interviews themselves were extensive, challenging, stressful and fun at the same time. I’m fairly sure I was the only person on campus in a shirt and tie, surrounded by surprisingly stylish, coffee-bearing, North Face-clad engineers bustling about. I’ve had some curious people ask what the interviews were like (and I would found it helpful before I went) so for any curious potential interviewees, here you go:
- 10:30 am
- After taking a wrong turn and driving through what looked surprisingly like the compound on Jurassic Park, I arrived at the recruitment building. It took some time to find it since Microsoft’s campus is a small city, several times the size of my decently large university. Inside was nothing like I expected—I found myself waiting in a vogue lounge furnished with furniture that looked like colored microwaved marshmallows, Xboxes with Rock Band, sound-proof meeting rooms with glass walls, karaoke booths, banks of futuristic-looking computers, tables of breakfast food, cold beverages and every kind of tea Britain could ever dream of taxing us for. I felt very odd standing there with a folder of papers, adjusting my tie.
- 11:15 am
- My recruiter arrived and we stepped into a conference room. She asked some questions to get to know me a bit better, offered some helpful advice for the interviews and explained how the day would go. She then slid me two cards, one with my first interviewer’s name and office number, the second with “Microsoft e-cash” written on it. “Your first interview will be a lunch interview. Buy yourself and your interviewer’s lunch with that card. They’ll like that.” The lady at the desk in the lobby punched something into the computer and within a minute or two a campus shuttle Prius with a number pained across the side pulled up. “Good luck!” the girl called as I headed out and drove back through Jurassic Park in the Prius.
- 12:00 pm
- Lunch interview with a nice Indian guy where we ate pasta and he asked me about my job, schooling, methods of troubleshooting, what the most difficult problem I’ve ever solved at work was, high-level questions about different programming languages, etc.
- 1:00 pm
- Headed to his office on the second floor of a our building. Few engineers even turn their office lights on because the building has so many windows. “Alright, now let’s do some coding problems. We’ll start with a pretty easy one.” Popping the lid on a marker he asked, “So if I give you three numbers, each representing the length of a side of a triangle, write an algorithm to tell me what kind of triangle it is.” I was specifically told several times by my recruiter to ask questions before coding because the interviewers intentionally give you too little information, wanting to see what type of questions you ask for. I asked a few questions to get what I needed then got work. He’d occasionally comment or ask why I was doing something a certain way and not some other way. The last several minutes of the interview were him asking me what errors could occur, what vulnerabilities the code had and how I could make it faster. I was surprised at the level of error checking they did, looking even at things as small as stack or operator overflow.
- 2:00 pm
- Went to an office just across the hall where I was greeted by another Indian guy named Sunil. This interview started with behavioral questions followed by more code. He asked a question about binary trees and wanted a function to traverse the tree and determine which path led to an edge node where all the nodes along the path added up to a number he would pass in. I got to the end of the function but I knew I wasn’t recursing right and couldn’t quite figure it out in time. My confidence was a bit shaken afso I decided to follow my recruiter’s advice to grab a juice from the fridge and take a breather between interviews and shake it off… You are interviewing all day and they understand it’s tiring, so one bad interview won’t kill your shot at a job, she said.
- 3:00 pm
- This one was in another wing of the building with another Indian guy named Shiv. He had spent some time in Utah and was excited to talk about it. He seemed very at ease which was good after how tense the previous hour had felt. His coding question was a direct nerd snipe. He asked me to write a function which would, given a string like “abracadabrax” would return the most repeated character, printed the number of times it was found, followed by the least repeated. If there were any ties, then both characters had to be printed alphabetically. So the output above would be “aaaaadx.” I wrote my solution and he asked “so how fast does that run?” I looked at the algorithm and answered. He said, “Okay, can you make it faster?” So I worked to shorten things up a bit, cut out a nested loop and he asked the same thing. Then he asked, “can you get that to linear time?” I worked until we were out of time and he asked, “So how do you feel about this?” I felt like I’d just missed the final answer, but I said, “Well I solved the problem, I made it subsequently faster twice, but I’m curious how you get it to linear time. How do you do that?” He grinned and said, “Oh, you can’t.” Then he cast a side-ward glance and with a mischievous smile added, “You said you liked challenging problems; how did you like that one?” Seriously? An unsolvable problem?? It was inward relief and agony.
- 4:00 pm
- Final team interview with the hiring manager, the only American I interviewed with besides my recruiter. He was a hilarious guy who shook my hand and said, “So this is Richard Holley. What’s up?” “Hey, nice to meet you. I actually go by Wes.” Still half-smiling he said, “Yeah, I don’t like that, man. Why would you forego using such an illustrious first name as Richard?” He grabbed some Red Vines and sat behind his desk. Then I noticed the placard on the door with his name “Rich H.” and I smiled and he laughed. “Alright, now as the manager around here I get to save the hardest questions for last. So I’m going to ask you some of the craziest code you’ve seen here today.” He paused for a second before continuing while I inwardly groaned, “nah, I’m just messing. Let’s just chat—we’re done with coding today.” So he sipped from one of the four juice cans on his desk and asked questions like why I’m here, what I’m interested in doing at Microsoft, why I want to work at Microsoft, where else I’ve interviewed, how the day has gone so far, and what accomplishment I’m most proud of in life. He was unexpectedly inquisitive about what inspires me, drives me, and where I wanted to go in life and particularly in my career. The interview seemed relatively distant from anything of a technical nature at all and involved a lot of laughter.
- 5:00 pm
- I grabbed a shuttle back to the recruitment building and had a final meeting with my recruiter in the melted marshmallow furniture. She told me what she thought and said she’d get back to me as soon as Rich made his decision.
The next afternoon I was walking around near the waterfront in downtown Seattle when a girl stopped me on the street. We talked for a few minutes and her friend (who happened to be Mormon) joined us and started telling me about the singles wards here while I explained why I was in town. Just then my phone rang and my recruiter yelled, “Wes! It’s Kristy—sorry it’s so loud I’m in Disneyland. I can’t talk much now, but I wanted to call and let you know that I just got an email on my phone that we’re making you an offer!” I was a bit in shock, but she continued anyway, “Awesome right?? I’ll call you with all the details tomorrow.” I hung up and turned around smiling, “Holy crap, guess who that was??” The two girls looked at me, “Oh my—did you get the job??” We all joined in a massive hug while jumping up and down celebrating on a corner in Seattle, me and two random girls.