Wednesday, May 31, 2006

Google Interview

Today I had my first phone interview with google.

A few months ago, I was contacted by a google recruiter. At that time, I was quite happy at the company I work, but (for reasons I do not mention here), that has changed. So first I ignored that mail completely, and a few weeks ago she asked me again. I had almost forgotten about it, but now I replied that maybe I am interested. Two weeks ago I had the first phone conversation with the recruiter, where she asked just a few, simple questions like:

  • what is the nearest power of two to 2 billions (31, 2^31 ~ 2 billions)
  • in C++, when you allocate an array using new, how do you free it (use delete[], do not forget the square brackets)
  • What data structures are there in Perl (I mentioned hashes and arrays)

Later she told me per mail that I had one answer wrong - I guess I somehow misunderstood the perl question, because everything else is correct. Or maybe it is because I first forgot the square brackets for the delete, but I did mention them after further inquiry.... (I know perl and C++, but I am rusty in both. I just used C recently, and that a lot).

We scheduled a 45 min. phone interview for Last Friday at 12pm. So I patiently, and nervous as a wreck, waited for the the phone call in my car, but noone called. After 15 minutes I went back to work, and complained per mail at 1pm. Turned out that the interviewer had something else to do, and we scheduled another interview for today, 12:15pm.

I (again) waited in my car for the call. But I noticed that the reception there is bad, so I decide to go somewhere where the reception is better, but still undisturbed. Turned out to be a longer walk to an artificial creek with nice trees, which gave some shade. Unfortunately, I forgot pen and paper. On the way, almost there, the phone rang and the fun started.

It began pretty straight forward. First quetstion: In C, what does the line while(*p++ = *t++); do? Easy (it is copying a string from t to p. Is there a function that does the same? (Yes, it is strcpy()).

Next step was a little harder: of these data structures, what is the worst case scenario: a linked list, a binary tree, a black and white tree (?), a B tree and a hash. I have no idea what a 'black and white tree' is ( have to look it up later), but the rest is easy enough, although I wasn't sure about the B-tree: linked list is O(n), binary tree O(log n), B tree also O(log n) and hash is O(1).

After that, I probably messed it up. We had a long discussion about a test scenario where a server is tested to give answers to requests. In a test scenarion, we find that a server needs 25ms for a request. Now we suddenly find that it takes on average 250 ms. It went back and forth, and we talked about all sorts of things to test, and I got confused. We talked about how to calculate the round trip time, changing the client to do parallel requests and so on, using ifconfig and w to look for network congestion, CPU load and so on. It was terrible. I hope that at least some of my answers were oky, but I do not have a very good feeling. One thing to remember: if the client does 3 requests at the same time, the first response comes after 25ms, the next after 50ms, the next after 75ms, what is the average? 50ms. Duh.

At the end, we talked about what he is doing at google, what I expect to do there, my ideas and so on.

Well, now I wait for an answer, which should come within a week or so. I hope for the best, but my confidence is shattered.


Anonymous Anonymous said...

I was wondering if you got the job? I too have received a call from google, but I haven't spoke with the recruiter yet. What was the very first conversation about?


3:39 PM  
Blogger oku said...

No, I did not get the job. They informed me with a form mail a few weeks later. See here.

Actually, I talked with the wrong department anyway. I am more a developer than an admin. So I tried again later using their web interface, but I got the same reply.

Well, bad for them ;-)

Anyway, I may try again, should I find that my current job sucks again.

5:53 PM  
Anonymous Anonymous said...

I was wondering why Google's recruiting process is so inefficient. Their recruiter may contact you first by email but may not response to you for a month and then they may ask you again if you are still insterested.

Microsoft recruiting process is completely different. They contacted me the second day since I submitted my application. They left voice message, write me emails, and asked me to call them and scheduled a campus interview immediately without any waiting.

9:28 PM  

Post a Comment

Links to this post:

Create a Link

<< Home

Site Meter