How I got Hired Straight out of University
Monday, January 6th, 1997: This was the first day of the new year back at the Institute of Physics at Bonn University, and at the same time I knew it was about to be one of my last days. The past 14 months I had worked on my diploma thesis, which involved developing a C++ library for accessing data acquisition and motor controller modules for various bus systems. I had already turned in the thesis paper and given a talk about the project back in December, but had to wait for the results. In the meantime I was wrapping up loose ends in the code base, getting ready to move out the office, and surfing the web for a job as a software developer.
While I did have a (somewhat vague) job offer at a company I had worked for as a student, the actual job interview (more or less pro forma I was assured) had been delayed over and over again as an important meeting deciding on how many people should be added to the company hadn’t taken place. It was now scheduled for end of January ("this time for sure").
After some time in my office I thought a hot chocolate would be nice. I went to the vending machine in the hallway, where I ran into one of the two professors who had read and evaluated my thesis paper. The professor told me he liked my work and asked me about my plans after university. When I answered that I was looking for a job as a software developer, he said he knew some people at a local company and could make a contact. Of course I accepted his offer, but having been promised many things in my life before (with only a fraction actually coming true) I remained a bit sceptical. It was quite a surprise when only 15 minutes later I received an email from a person at Comma Soft, asking me to call him on the phone. I called and we talked a bit about my work. After about 10 or 15 minutes he asked me if I’d like to come over for a job interview – the next day!
Tuesday, January 7th: The job interview. I was nervous, my heart pounding. After all, it was my very first job interview, ever. The interview wasn’t done by the person I had talked to on the phone, but two developers. The interview started with some questions about my diploma thesis which went pretty well. After that came questions about how I would approach future projects, how I would design class hierarchies, what I thought about multiple inheritance, and so on - nothing too technical. Then one of the interviewer changed the topic:
- Interviewer: "Ok, let's see... Well, we could ask you about X…"
- Me: "..." (hmm, I hope he won’t go too deep)
- Interviewer: "…or we could ask you about Y"
- Me: "…" (ouch, I’d have to look that up)
- Interviewer: "But these are things that we assume you either know…"
- Me: "…" (hmm…)
- Interviewer: "…and if you don’t, you could look them up."
- Me: "…" (phew)
- Interviewer: "So here’s a question that may be a bit unfair, I’m not sure, just to get a picture of you, not necessarily a problem if you can’t answer that…"
- Me: "…" (uh uh, this doesn’t sound good…)
- Interviewer: "Do you have a rough idea what a C++ compiler does with virtual methods behind the scenes, i.e. how they are translated?"
Tons of rocks dropped from my heart. What a coincidence.
When I started my diploma thesis, I had to debunk the myth that C++ was automatically much slower than C, otherwise I wouldn’t have been allowed to use something so "advanced" as C++. Among other things, I had to do perform some benchmarks on the various possible types of C++ function calls (standalone functions, class member methods, and of course virtual methods), compared to C functions calls (standard call, via a function pointer, via a pointer to a function pointer). I included the benchmark for the call via a pointer to a function pointer reasoning that if I had to reproduce in C what I could do with a virtual function call in C++, pointers to function pointers would be something I'd use. Not surprisingly, the times measured were comparable.
When I started mentioning that fact, the interviewer cut my answer short and said "yeah, there’s this vtable thing, and then these function pointers and stuff, … I guess we stop here, thank you". The two devs left the room, a couple of minutes later the door opened and somebody else came in, turning out to be the person I had talked to on the phone. When he started a monologue about what a great company Comma Soft is, I knew they wanted me. But we didn’t close a deal yet, instead we agreed that I would send them my final results as soon as I got them from university and that I would hear from them.
Wednesday, January, 8th: In the morning I received my final results (sooner than expected), and faxed them over to Comma Soft. A couple of hours later I received a call from Comma Soft and was asked how much money I wanted. I told the person what the other company was offering, he said that it sounded reasonable and asked me if I would like to come over the following Monday to sign a contract.
Monday, January, 13th: With the contract ready to be signed, one final question remained: When would be my first day at Comma Soft? I told them I would like to start as quick as possible. At that time I didn’t have money for a journey and my idea of fun was spending my spare time learning Windows programming (prior to that, I had developed in private mostly DOS, and the diploma thesis was for *ix systems). They said "well, we don’t have a computer ready for you by tomorrow, but what about Wednesday?". I agreed and signed the contract.
Wednesday, January, 15th 1997: My first day of work at Comma Soft. Funny, originally I had planned to choose my first company very carefully - and here I was sitting at a desk just nine days after my first contact with an unknown company! On the other hand, the people I met and my overall impression of the company seemed nice enough to convince me. I reckoned that I could start looking for another company if things wouldn't work out, making some money and gaining some experience in the mean time.
Well, things worked out better than expected. An important step was that in fall 1997 I joined what would later become the infonea team that I’m still a part of. But that's another story...
P.S. I received an email from the other company at the end of January. Now they were ready for a job interview - but I wasn't anymore.