My Google job interview
2008 hasn't been kind to us, to put it mildly. But dark pages in the book of life come and go; I prefer any day a noisy line on the happiness scale above a flatline, it makes the ride so much more interesting. But I have experienced that in every dark period, there's a turnkey event, which clears up the dark skies, or at least restores my hope in the future. Knowing that these events *will* happen, no matter how grim the present is, makes life much more bearable. I guess this is what the elder people call 'life experience'.
This is the tale of such an event.
About two months ago, I got contacted by Google, if I wasn't interested in working for their Unix team. Working at Google. Wow. I'm quite happy with my current job, and I don't feel the need of working elsewhere, but this is G-O-O-G-L-E. You don't say no against Google.
Apparently, they had hit my resume online, and were impressed by my profile. But I wrote them an email back, saying that I had another type of work currently. Basically, I was telling them I didn't feel qualified. And I got a friendly email back, basically saying : 'Let us be the judge of that.'.
So I agreed in setting up an interview by telephone with someone from the San Francisco Bay area. This interview was a conventional job interview, in which I was asked to tell about my current job (I deliberately didn't emphasize on my Unix skills), and what my field interest in working at Google might be. We both agreed that a function as Site Reliability Engineer (SRE) fitted me the best, as this matched my current job and interests the most. The interview ended with 4 technical questions, from which any well-seasoned Unix veteran should be able to get at least 3 questions good.
I was approved, it seemed, and I would be going through the standard job application routine, which consists of 2 in-depth technical phone interviews and -if all went well- a half day visit to the European Googleplex in Dublin. I was also advised in brushing up on my computer science skills, which made me kinda panicking. Surely, I was trained in computer science, but my university days are almost 15 years ago.
So I decided to start studying. Hard. On a university level. I rebrushed TCP/IP, cause that was the area which I was most rusty in. I studied about the OSI model, TCP, SYN/ACK handshakes and made myself comfortable with tcp dumps. I rebrushed on Linux programming, syscalls and signals, filesystem layouts, and basic operation system concepts like CPU scheduling, threads and memory management. I revised basic algorithms and ways how to predict the throughput time. Data structures like B-trees, hashes and graph theory are indispensable for any decent programmer, so I studied them as well. I decided to skip Perl, object-oriented programming and advanced statistics and probability, as time was rather limited. For those who are interested, these are the study books I used :
- Beginning Linux programming, 4th edition, Wrox
- Handbook of data structures and applications, Chapman & Hall
- Beginning Algorithms, Wrox
- Operating System concepts, 6th edition, Wiley & sons
- Internetworking with TCP/IP, Prentice Hall
The first technical interview was with a programmer from the bay area. I got very in-depth questions about Linux and system programming problems. Any solution I proposed, got thoroughly revised, and I was asked to increase the performance of every solution I presented. It was a very difficult interview, but entertaining and stimulating in some weird way. I didn't felt good by the overall outcome of the interview, but the next day, I got an email that they got positive feedback, and a second phone interview was scheduled two weeks later.
The second phone interview was with a sysadmin from Dublin, and asked me more conceptual questions about networking and Perl, up to the point were I had to create a monster of a 3-line regexp in order to solve a problem. Overall, I had the impression that I performed this very well. However, I was very nervous during the second interview. It is not easy to think aloud about a difficult problem, while some little voice inside your head is screaming "OMFG, I'm being interviewed by Google !".
It took three agonizing weeks to receive feedback from this latest interview.
Anyhow...
I didn't get the job.
I still don't understand what went wrong. Maybe my nerves killed me, maybe I encountered the job interview anti-loop (read Steve Yegge's "Get that job at Google"), maybe I wasn't qualified after all. Oh well. Still shame, I really would have liked an interview at the Googleplex, or even better, working at Google in Dublin.
What did I learn from all this ? Possibilities are endless : one day you're down and out in Belgium, the next day you're applying at a brilliant company in Dublin. The sky is the limit. I'm an excellent Unix admin. And I'm determined to get even better. Smarter. Faster.
This is the tale of such an event.
About two months ago, I got contacted by Google, if I wasn't interested in working for their Unix team. Working at Google. Wow. I'm quite happy with my current job, and I don't feel the need of working elsewhere, but this is G-O-O-G-L-E. You don't say no against Google.
Apparently, they had hit my resume online, and were impressed by my profile. But I wrote them an email back, saying that I had another type of work currently. Basically, I was telling them I didn't feel qualified. And I got a friendly email back, basically saying : 'Let us be the judge of that.'.
So I agreed in setting up an interview by telephone with someone from the San Francisco Bay area. This interview was a conventional job interview, in which I was asked to tell about my current job (I deliberately didn't emphasize on my Unix skills), and what my field interest in working at Google might be. We both agreed that a function as Site Reliability Engineer (SRE) fitted me the best, as this matched my current job and interests the most. The interview ended with 4 technical questions, from which any well-seasoned Unix veteran should be able to get at least 3 questions good.
I was approved, it seemed, and I would be going through the standard job application routine, which consists of 2 in-depth technical phone interviews and -if all went well- a half day visit to the European Googleplex in Dublin. I was also advised in brushing up on my computer science skills, which made me kinda panicking. Surely, I was trained in computer science, but my university days are almost 15 years ago.
So I decided to start studying. Hard. On a university level. I rebrushed TCP/IP, cause that was the area which I was most rusty in. I studied about the OSI model, TCP, SYN/ACK handshakes and made myself comfortable with tcp dumps. I rebrushed on Linux programming, syscalls and signals, filesystem layouts, and basic operation system concepts like CPU scheduling, threads and memory management. I revised basic algorithms and ways how to predict the throughput time. Data structures like B-trees, hashes and graph theory are indispensable for any decent programmer, so I studied them as well. I decided to skip Perl, object-oriented programming and advanced statistics and probability, as time was rather limited. For those who are interested, these are the study books I used :
- Beginning Linux programming, 4th edition, Wrox
- Handbook of data structures and applications, Chapman & Hall
- Beginning Algorithms, Wrox
- Operating System concepts, 6th edition, Wiley & sons
- Internetworking with TCP/IP, Prentice Hall
The first technical interview was with a programmer from the bay area. I got very in-depth questions about Linux and system programming problems. Any solution I proposed, got thoroughly revised, and I was asked to increase the performance of every solution I presented. It was a very difficult interview, but entertaining and stimulating in some weird way. I didn't felt good by the overall outcome of the interview, but the next day, I got an email that they got positive feedback, and a second phone interview was scheduled two weeks later.
The second phone interview was with a sysadmin from Dublin, and asked me more conceptual questions about networking and Perl, up to the point were I had to create a monster of a 3-line regexp in order to solve a problem. Overall, I had the impression that I performed this very well. However, I was very nervous during the second interview. It is not easy to think aloud about a difficult problem, while some little voice inside your head is screaming "OMFG, I'm being interviewed by Google !".
It took three agonizing weeks to receive feedback from this latest interview.
Anyhow...
I didn't get the job.
I still don't understand what went wrong. Maybe my nerves killed me, maybe I encountered the job interview anti-loop (read Steve Yegge's "Get that job at Google"), maybe I wasn't qualified after all. Oh well. Still shame, I really would have liked an interview at the Googleplex, or even better, working at Google in Dublin.
What did I learn from all this ? Possibilities are endless : one day you're down and out in Belgium, the next day you're applying at a brilliant company in Dublin. The sky is the limit. I'm an excellent Unix admin. And I'm determined to get even better. Smarter. Faster.