Oracle – 1997

I honestly don’t know how recruiters operated before Google, LinkedIn, Facebook, etc. It must have been really hard work to get by on just building up your own personal database of contacts, of people who knew people, matched by skill set, where they worked, etc.

For whatever reason, one called me. Introduced himself. I grilled him on what he did and how he actually made money.

“I charge a fee of 20% of your first year’s salary if the company hires you.”

Oh. Now I understand. That’s also fairly lucrative when recruiting software engineers.

He wanted to put me in touch with this hiring manager at Oracle. I told him that I had not heard good things about working at Oracle. He assured me that this was different than the normal Oracle job.

A few days later, a fellow with some kind of accent (my guess was New Zealand) called me. He was going to start a company that was going to be spun out of Oracle. Oracle was going to set aside a bucket of cash, and looks for other investment partners to also put in cash. In any case, they were starting a software company, and wanted to talk to me about working there. He had me set aside an hour for a phone call.

To talk to him. We talked about software methodology. We talked about nit-picky areas of the C standard. We talked about QA and its importance (where I got to talk about my recent expertise in test-driven development). At the end of the hour, he said:

“Right then. I am going to make you an offer. But first I need to see some code samples.”

“I can send you the main files for my menu work on Tk for both Mac and Windows.”

“That will be fine.”

I asked a question that had been bothering me. “What kind of software is this?”

He replied, “That’s confidential. Once there is an offer on the table, there should be an NDA, and we can talk about that to help you make your decision on whether or not to accept it.”

“Well, I am looking forward to seeing this offer.”

“What do you expect in terms of salary?”

I took what I was making and multiplied it by 1.1. A 10% pay raise sounded nice.

“That shouldn’t be a problem. There will also be equity, and Oracle is providing the benefits.”

“Sounds good”.


Two weeks later, I got an email:

“My apologies – normally the process is a lot quicker than this. Unfortunately, Larry Ellison and Jerry Baker are reviewing the hiring budget and are sitting on the approval which I am waiting for – I’m told that this will be complete by Wednesday – and then it will take me a few more days (perhaps a week) to get a formal letter into your hands.”

He then laid out the terms, which were reasonable.

“I hope that you will forgive the delay and am sure you will find the offer a good one with good upside potential – significantly better than the potential elsewhere. If you have any questions, please let me know.”


One week later:

“I’m really sorry that I haven’t contacted you before now. My hiring is still being held up because Larry Ellison is undertaking a budget review. However I do hope to hear something positive tomorrow. I really regret the delay – profuse apologies and several beers owing – I really hope to have something in your hands by the end of this week in the form of a written offer but currently my hands are tied.”


Four more weeks later, I got a phone call.

“I’m afraid I have bad news. The entire project’s funding has been cancelled. Oracle decided that even if it was spun out, the work that this company would be doing was not something that Oracle wanted to be involved in. I am going to try to get venture funding on my own. If something happens then, may I call you?”

“Sure. That’s disappointing.”

“I assure you; nobody is more disappointed than me. Thanks so much for allowing me to waste your time.”


I never heard from him again. Still waiting to have beer with him. Would have been nice to meet him face-to-face.

And that would not be the last time the hiring manager has said that he was just “waiting for the approval” for an offer to be forthcoming. It’s amazing that companies post jobs, but when it comes time to pull the trigger, they have a change of heart, and eliminate the position or reorganize or lie to a candidate that they were going to receive an offer.

And this also did nothing for my image of Oracle as a company.

Microsoft – 1996

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.

  1. 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.
  2. 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.
  3. 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).
  4. 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.