It’s digging back into prehistory time 🙂 WAY back into pre-historical times.
Microsoft has always done on-campus interviews, it’s an integral part of the recruiting process. Gretchen and Zoe have written about it a lot here.
My on-campus interview story is a bit dated nowadays, it occurred when I was interviewing at Carnegie-Mellon University back in October of 1983 (or thereabouts).
I had signed up for the interview with Microsoft more or less on a lark, I wasn’t particularly interested in Microsoft as an employer, but Microsoft did compilers, and operating systems (for toy computers), and I figured that it would be worth an hour or two of my time. I REALLY wanted a job working in operating systems development on a “real” computer – something like a Vax would be nice.
I walked into the interview cold – I had no idea who this “Steve Ballmer” was, I figured he was yet another development manager, just like I had all the other interviewers I had seen. Boy was I surprised.
I walked into the office-let that they used for interviews, and was introduced to this great big strapping slightly balding guy with a voice almost as loud as my own. He started in asking me the usual questions – what’s your favorite course, what do you do in your spare time, etc. So far, nothing unusual…. Then he started asking me questions – but not programming questions like I’d had before, logic questions.. The one that sticks in my mind was:
“We’re going to play a game. I’m going to pick a number between 1 and 100, you get to guess the number. If you don’t get it, I’ll tell you if you’re too high or too low. If you guess it, i’ll pay you $6 less the number of guesses that you take – so if you get the number on the first guess, you get $6, but if you take 7 guesses, you pay ME $1.
Now do you want to play the game or not?”
I said “Of course not – a binary search on 1 to 100 takes 7 guesses for the worst case, you can pick your numbers such that you will always force 7 guesses”.
Steve looks me and says “Are you sure?”
Long pause on my part…. “Well, I don’t need to choose my first pivot point at 50, any number between 32 and 64 will work just as well, and if I do that, I change the spread, so if I change the start point of the binary search, I can win this game”.
Steve then moved on to describe the work environment at Microsoft – everyone gets their own office, development work is done on Sun workstations, and most of the compiler and language work is done on a DECSYSTEM-20 (since I was a die-hard dec-20 fan back then (and still am), this was music to my ears). Steve then described the Microsoft DEC-20 and commented “We love the DEC-20, except when we do our nightly builds – it gets totally unusable when we’re doing builds, the load average gets to 10 or 20” (the “load average” on a DEC-20 was a measure of the performance of the machine – the higher the number the lower the user response time). He got quite emphatic about how horrible life was on the mainframe when this was happening.
At that point, I totally lost it. “You think that a load average of 10 or 20 is bad? Man, you are clueless – you have absolutely no idea how bad the load can get on a DEC-20. On a good day, the load average on our DEC-20 is 50, and when projects are due, it goes up to 100 or 120”. I continued ranting for several more minutes.
At about that time, the interview ended, but I was convinced that I had blown it (no big deal, as I mentioned – I didn’t really care about the job anyway). On the way out, I started reading the Microsoft literature that I’d been given… When it came to describing the executive team at Microsoft, I stopped and stared at the brochure. There was his name and picture – “Steve Ballmer, Vice President, Operations”.
Sigh.. If I had any chance of getting that job, I had surely blown it totally – you just don’t just tell the guy who’s interviewing you that he’s an idiot. Especially when he’s the head of H.R. in a company that’s trying to hire you…
Needless to say, the very next day, I received a telex asking me to come to Redmond and interview with Microsoft. I remember Valorie running into my compiler design class with the telex in her hand. Three months later, I interviewed on campus at Microsoft (my first plant trip). Things must have gone well; I got my very first full time job offer at about 4PM on the day I interviewed.
Oh, and about that interview question (there was a reason I put it in the story)… I wasn’t happy with the answer to the question that I’d given Steve, it kept on niggling away at the back of my mind. About a week later, I was busy working on the parser for my Compiler Design class, and I decided I needed a break, so I wrote a program to emulate the game choosing different pivot points (you can tell I am/was a totally obsessive geek for even considering this). After running through the game, even after choosing pivot points that aren’t in the middle, it turns out that you CANNOT win the game – there is no other pivot point that can be used to improve your odds of guessing the worst-case numbers based on a pivot on 50 – the alternate pivot points still require more than 6 guesses to find the value. On the other hand if the person you’re playing with believes that you’re going to choose a pivot point of 50, and picks his numbers accordingly, you CAN potentially win, but it’s a crap shoot.
I ran into Steve in the hall about a year after I had started, and asked him about that (further proof that I’m an uber-geek – I actually followed through with the interviewer and challenged him on his interview question)… He said “Yeah, I knew that, the point of that interview question is to see if the interview candidate can even consider a pivot point other than 50, I didn’t care about what the real answer was”…
Edit: KC pointed out in private email that I left out a crucial detail – hey, it was more than 20 years ago, you expect me to get every detail right? 🙂