Saturday, 8 March 2008

How those Google Interviews in Zurich went...

In a nutshell, I think they went fairly well.

I flew from London City airport at about 4.30pm, and arrived into Zurich around 7ish. I checked in at the hotel, dumped my bag in my room and went for a bit of a wander around the Old City area. It was really quite pleasant; I got to see some pretty buildings lit up by lights (I'll add some photos to my website later today, hopefully), and I found a nice little cafe restaurant place where I ate dinner.

Unfortunately I didn't sleep very well. I don't know if I was actually ill or if it was anxiety over the interviews, but I *really* didn't sleep very well, only had maybe a total of an hour or two of sleep over the whole night.

Fortunately, after walking to the Google office the next day, I didn't feel too bad, and the fresh, cold, air did a good job of perking me up. The office reception area was what I expected after my research into Google, ie. lots of comfy cushions and beanbags, a pool table, a monitor showing a sample of real time Google searches, and a fridge of free drinks. I actually arrived about 40 minutes early, so I settled into a cushion and read a book.

I was shown around some of the office before being shown to a room where I spent the next 3 hours being grilled by 3 different people in 3 different interviews.

The first two were done by Product Managers (I'm applying for Associate Product Manager), and they went very well indeed. The third was a technical interview held by an Engineer, and that sadly didn't go quite as well as I had hoped, but it wasn't a complete disaster.

My first interview had questions like:
* What item on your CV are you most proud of: I spoke about the AIESEC conferences I helped to organise, which moved into a discussion of AIESEC in general, how I got involved, and what work I did in the EB of San Jose.
* Why do you want to work for Google: Fairly standard question, really.
* What is Google's worst product: I talked about Froogle, and (anticipating the next question to be about how to improve it) started talking about how it could be bettered by integrating it with GMail and Google Checkout, and advertisements.
And, because there was some time left over...
* Design an elevator: This was a slightly more technical question, and after some rambling eventually focussed on how to decide what to do with a call that was made when the lift was already in use (ie. stop and pick up the new person, or deliver current person before picking the new one up). I waffled about linked lists and interrupts.
We also talked quite a but about mobile technologies, and how it would be the next big thing.

I can't remember very many of the second interview's questions, but some of them were:
* What is the next big thing in terms of Google search (or something to that effect): I talked about searching for images, not via text strings but my describing the image in terms of content (ie. red here, blue there, tree over there, etc). Discussed how this meta data could be generated automatically, and how a user interface would work to create a query based on this data.
* How would you find out how many parking spaces there are in Manhattan: I fumbled about with this question, starting of by saying "count them all", then moving on to automatic solutions like monitoring all the traffic coming into and out of Manhattan... parking spaces would act as a sort of capacitor, difference between cars in/out would indicate parking levels. I then went on to talk about a live satellite image and image recognition software, tracking cars. Mostly waffle and bluff.
We also talked about AIESEC, and also about my time in India.

Third interview:
* Describe what happens when a user enters an URL into a browser: This started of with me describing a DNS lookup, but quickly evolved into a "discussion" (me frantically trying to answer a multitude of questions :P) on the network protocol stack. I made the first mistake by saying IP was above TCP, then struggled to remember how TCP operated (SYN, ACK, and all that gubbins). There was some discussion on the differences between TCP and UDP, which I was largely OK with. We then went on to "talk" about how a server would handle large numbers of incoming requests. Having never heard of load balancers, I needed some prompting but quickly got the idea. Also talked about locating servers in the country of main use, and how trans-Atlantic fiber optic cables caused bottlenecks.
* Explain a binary tree: I got this one pretty well, until I was asked about searching time, which is all this "log n" nonsense which I never really understood. However, with a bit of prompting I was able to muddle my way through the maths of it.
* Explain how a hash table works: All I could really remember was that a hash table had containers, which made it more efficient than a tree, but I couldn't remember how the containers worked. I managed to field the questions ok, but wasn't really able to answer confidently.
* Write a recursive Fibonacci method in java: This really threw me to start with, mostly because I started writing an iterative method instead of a recursive one. Took a while, but after remembering all the recursive Haskell stuff I did in the 2nd year, I remembered about stopping cases and wrote down something that worked. When asked about efficiency, particularly about what would happen when the, for example, 1000th number in the sequence was calculated, I was able to recognise the link between this and the previous tree stuff and did the log n thing, saying that the 'puter would run out of memory due to storing both the return values of all the method calls, and the stack needed to track those method calls.

So yeah. That's that. I should hear back on Monday or Tuesday next week!

Labels:

0 Comments:

Post a Comment

Links to this post:

Create a Link

<< Home