A friend got in touch with me.
“Hey, I’m working on the Internet Explorer team for the Mac. It’s just getting off the ground. We are recruiting, and I thought of you.”
“Sounds good,” I said. “Tell me more.”
He filled in a lot of non-important details (at least 20 years later), and then dropped the bombshell.
“It’s in C++.”
I gulped. “I don’t know C++.”
“Well, everybody understands that there is not a lot of expert experience out there, so if you know the basics you should be OK.”
The interview was scheduled, and I had two weeks to learn C++.
It was a different world in 1996. There were many roadblocks to learning C++:
- Google was not yet up and running. There were other search engines, like Altavista and Yahoo, but having all of the language knowledge at your fingertips was a few years away. I bought Stroustrup’s book, and tried to read through it.
- C++ was still relatively young. The language itself had been kicking around for a decade, but the available compilers were slow to implement all of the features.
- I owned a Mac. I did not own any development environments. There were not free. They were several hundred dollars, and I spent money for my personal machine on music software.
- At work, I had access to C++ compilers on Mac, Windows, and Solaris. However, I did not feel right learning C++ for a job interview on another company’s machines with the versions of compiler they were paying for.
Now, there are many, many free resources with free compilers for any language you want. Then, however, it was really hard without spending lots of money for the off-chance I might get the job.
Interview day. This Microsoft office was in Foster City. There were the only team there. Most teams, of course, were in Seattle.
- Resume deep-dive: The hiring manager went over my resume with me, asking me about each position, my education, etc., and tried to feel out whether or not I knew what I was talking about and whether or not I had social skills.
- Technical discussion: Discussion of some computer science concept. I don’t really remember the topic for this particular interview, but hash tables were very common for this in the nineties.
- Open-ended question: Here the Microsoft people were famous for asking strange questions. They asked me the famous “Why are manhole covers round?”. I talked about the fact that circular shapes minimized the area-vs-perimeter relationship. Oh, and it keeps them from falling in. (I’m ok with talking about this question, as it is one of the most discussed questions in the early days of the Internet).
- Coding example: “Write a C++ class for managing shapes”
How hard could it be? It is the quintessential example in almost every object-oriented programming book. I read through one.
I wrote all of the member variables and methods; they were straightforward. Then I had to write a constructor.
And I froze. It was painful. It was obvious to me that the interviewer wanted me to succeed. The vibes from all of the interviewers were awesome, and if I could just write this very simple constructor, I would get an offer.
I did not get an offer.