The Microsoft Interview
By Carl Tashian
Well, now I can say I got denied by Microsoft. I call it bad luck. And as I was writing a cathartic story about it, Windows NT crashed. So I wrote it again:
It was a rainy Thursday night in Redmond when I arrived at the "Courtyard by Marriot." The check-in process was simple: I said my name and the guy behind the counter crossed it off on a list of about a hundred people and handed me my key. As I was walking away, I heard the person behind me in line give their name. Then I heard the pencil cross another name off the list.
Was I in a Microsoft-owned hotel? The first thing I noticed when I entered the room was the "Thanks from Microsoft and Marriot" card on the table. I'm not a paranoid person, but at this point I had a bizarre urge to look around for surveillance cameras. These two companies must do a lot of business together--the room was paid by Microsoft, as well as the food and all phone calls. They told me I'd have to pay for the porno movies, though.
In my anxiety about the next day's interview, I had a night of little sleep. In the few dreams I did have, I found myself in the interview forgetting everything I knew about computers. Tongue-tied and ignorant, I blathered on about wanting to just stay in college all my life.
When I got up and went to breakfast in the morning, the hotel dining room had at least 20 other nervous, college-age kids whose corporate dress didn't do much to hide the fact that only yesterday were they walking across campus with a backpack, t-shirt, and shorts. In suits and ties they sipped their coffee and pretended to read a newspaper.
I felt like an apprehensive lemming.
"We're more interested in what's in your head than what's on your body," the internship brochure read. What was on the body of the receptionist in Building 19 gave me a pretty good idea of what was in his head, though. Microsoft.
He wore a 100% Nylon, all-Nike outfit that made him look like he'd just finished a morning game of corporate-sponsored soccer. I'd always thought that casual dress was a great thing in the workplace, but this was ridiculous. I was looking at the first Microsoft employee seen by most prospective interns. He must have been adhering to a strict yet unconventional dress code.
I waited a good 30 minutes in the lobby, with 15 other loitering recruits. There was a computer kiosk in the corner of the lobby with "Explore" written in big Microsoft lettering above the monitor. The screen was dead--completely blank except for a small Post-It note reading "Out of order." The TV was set on MS-NBC, with another note on it, this one reading "Please do not change the channel."
My recruiter finally came down to meet me. Like most Microsoft employees, she was a twenty-something who hadn't shown any signs of the long hours she must have spent shepherding the masses. We discussed the interview process, and she gave me the name of the person I'd be interviewing with first and the code name for his group. "I can't tell you anything else about them, because I don't know what they're telling people," she said. The code name didn't reveal too much, either, but I guess that's the point of a code name. I hopped on the Microsoft Recruiting Shuttle to Building 6, the location of my first "real" interview with an unknown person at the Unknown Group.
The Software Design Engineer who came to get me in the lobby of Building 6 was an unshaven Eastern European guy who was going for the all-Adidas look that morning. He stuck with all-Nylon, as well. He was a terse speaker with a pretty thick accent, and we didn't really get along well from the start.
This bothered me. If I don't "click" with the person I might be working for in the future, my prospects are much lower. At the same time, I didn't want to start thinking "What am I doing here?" already, since the interview hadn't even begun yet.
We entered his somewhat cluttered office. There was a strange smell in the air, a mix of cigarette smoke and carpet cleaner. Without formally introducing himself, he handed me a dry erase marker, adding a third smell to the nasal experience. "I'll start you out with a simple problem," he said. "You have b boxes and n dollars. If I want any amount of money from 0 to n dollars, you must be able to hand me 0 to b boxes so that I get exactly what I request." The two questions were "What are the restrictions on b and n, and how is money distributed among the boxes?" I immediately explained to him that you could put 1 in the first, 2 in the second, 4 in the third, 8 in the fourth, etc, but he wanted a mathematical proof.
A mathematical proof? I hadn't written a proof since eighth grade, nor had I ever needed to while designing software. I had not taken a Discrete Math class yet, and four semesters of Calculus didn't help this situation. I finally managed to write out that each box i should have 2^i dollars in it, the total amount of money being the summation from 0 to b of 2^i. He still wouldn't accept it. It was as though I was speaking English and he wanted me to speak an Eastern European language. "Is that an algebraic or geometric progression?" he asked. A what? I haven't done that since eighth grade, either. So I asked him to define his terms, but he wouldn't. My answer just wouldn't do.
By this point he was frustrated with my incompetence and probably ready to give up on me, but since I came all the way from Cleveland to answer his questions, he offered me another problem. "I want an office phone book. It should have names and phone numbers in it. Write some C++ code to search the phone book and give me the response." A pretty vague question, so I started prying for more information. "Do you want to look up names, numbers, or both?" I ask. "I don't care how you do it, I'm just your manager." he says. Oh. Well, it's always nice to have a specification to follow.
The first thing that enters my mind is a similar project I worked on a long time ago. It used a binary search for lookups, so I said, "Okay, I'll do a binary search." I always liked the binary search because it is both fast and simple to code. In the case of an office phone book, you don't need anything complicated. My interviewer chuckled at the words. I started writing code, nonetheless.
A few minutes later I had a good binary search written and debugged. I said that binary searches may not be as fast as other methods, like hash tables, but they're easy to code. "So why didn't you say hash table earlier?" he said, as though hash tables were the only solution. He had me explain how hash tables worked before sending me to my next interview.
So far, I was pretty unimpressed. It was obvious that we weren't seeing eye to eye. I was trying to decide whether I was a complete idiot or merely unable to communicate. I still didn't know his name. Luckily, I had three interviews left.
My second interviewer was much more cordial. He spoke English, too. He devoted a lot of our time to explaining the purpose of the group to me, at long last. Unfortunately I had no experience in the group's area of research, but it was still pretty interesting. Then he started in with the questions. "If I want to insert a node in a binary search tree...."
The interview went well. I answered everything he asked, and we weren't arguing over semantics or the complexity of different search algorithms. By this time, it was about 12:30, so I went to get lunch with my new favorite Microsoft employee at the nearby Red Robin restaurant. A delicious cheeseburger and IBC later, we returned to the Microsoft campus and he dropped me off at the next interview. I was somewhat relieved, but I still had a bad feeling about how the first interview turned out. I would have to rock on the rest of the interviews if I expected to get a job offer from this company, who allegedly hires less than 1 in 4 recruits.
Well, the third interview was similar to the second. Another employee in another numbered building asked more of the same old stock questions from the Microsoft interview database. "What's the easiest way to reverse a linked list?", and so on. As this point I was feeling like a pro, and I had no trouble churning out correct answers. Perhaps they'd dumbed things down for me?
I felt a lot better once the third interview was over, because with one left to go, there might still be some hope for recovery from my first.
Afterwards, I was told to wait in the lobby for my final interview. I spent about 15 minutes people-watching and trying to fill out the Microsoft job application form with the only pen I had--a nearly empty Bic with a small leak. The finished application reminded me of kindergarden.
Finally, my previous interviewer returned to the lobby and said, "Sorry, but my manager, who you were going to interview with, didn't come to work today." It was over. Since his manager decided not to come in, I had no fourth interview. It was time to return to the recruiting office and finish things up with my "job agent."
Back in her office, she asked "How did your day go?" This simple question turned into a polite argument about Microsoft's interviewing practices. Does job experience dictate potential? They did not seem to think so.
Well, call me bitter and cynical, but after the interview and subsequent rejection postcard, I believe that in hiring practices, especially at a company who has a herd of expendable prospective employees, the interviewee can always get denied, but the company will win.
"I hear Bill Gates drives a simple car--a Lexus or something," said the driver of the recruiting shuttle. "Why doesn't he take a limo?" someone asked. "I think he really enjoys driving," she replied.