Ro Mathew

Google is watching me - Part II.

July 28, 08 by ro

In my holidays I’d gotten to see some of the fruits of my 35 graduate applications made earlier in the year. The demand is high, yes, but for skilled labour, not us university grads. Especially not those who are travelling to Europe for a month, or 8. Employers love well rounded graduates, as long as they get well rounded in their own time.

Some graduates, the really well loved ones, actually get an upfront bonus, free plane tickets and a pat on the ass in return for a signature on a 2 year contract. Not me though.

When Google emailed regarding a visit to their Sydney headquarters I was quite pleased with myself. It was like winning a raffle where your resume is the winning ticket. I estimate that Google Sydney interviews between 150 - 300 people every year, but the figure could be as high as 1000 after hearing that some employees can interview up to five people a day. Considering Google (as a whole) gets around 1,000,000 applications a year a reported 99.5% of which are rejected, I wasn’t doing badly at all.

Google have been complaining about the lack of quality computer science professionals for some time now, especially in Australia where CS departments are slowly getting absorbed into commerce in the face of rising costs and lower enrolment figures. Face it, IT is nerdy.

Combine this with growth that has seen the Sydney office double in size for the last few years and the smile on my silly face just kept growing and growing. You see: by my mathematics Google must hire at least 25% of it site interview candidates to grow at the rate it does. A one in four chance to work for Google isn’t something you should pass up easily. So I began to study again.

Putting aside the work I’d done so far, I started again. The HR lady actually directed me to the following links:

I highly recommend that you take a look at a very helpful text book to help you prepare for the in depth questioning as part of the Tech Phone Screen -
‘The Practice of Programming’ by Brian W. Kernighan (Author), Rob Pike (Author)

Want to know what some sample sets of problems there might be? Check out:
http://steve.yegge.googlepages.com/five-essential-phone-screen-questions
http://steve.yegge.googlepages.com/what-you-need-to-know
http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html

You can check out some of our recent projects beyond Google search by
visiting http://labs.google.com and review some of our research publications: http://labs.google.com/papers.html

Visit www.youtube.com/google for more information on the Google recruiting
and hiring process. The video is titled - “Interviewing at Google”
http://au.youtube.com/watch?v=ZxZOpNUN3Ww&feature=PlayList&p=2299EEC65662D7F5&index=0

And one last helpful tool, visit http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=alg_index

Please let me know if you have any questions.  Good luck preparing!

Good luck indeed. I started by reading the resources and associated links and kind of parsing the topics to study. The fall into the following topics:

  1. Programming (Java / C++) - A good understanding plus how to implement the following:
  2. Big O Analysis - How to do it, the order of badness, should be able to look at functions and say order.
  3. Sorting Algorithms - Bubble, Sequential, Insertion, Merge, Quicksort
  4. Data Structures - Arrays, Trees, Hashtables, Vectors, Linked Lists, Queues / Stacks, Maps
  5. Object Oriented Programming - Basic concepts and how they should be implemented in your language
  6. Graph Analysis - Adjacency Matrix, Adjacency List, Dijkstra, A, Bredth First / Depth First Traversal
  7. Operating Systems / Concurrency - Concurrency, Locks, Mutexes, Semaphores, Deadlock and Livelock, Scheduling, Threads
  8. Scripting - Regular Expressions, Grep and other UNIX commands
  9. Probability - N choose K, Independent and dependant events
  10. Problems - Common / Famous problems: Travelling Salesman, Knapsack Problem, NP Complete problems and their variants. For this The Algorithm Design Manual recommended by Steve was invaluable, and you don’t have to buy the book, its online here.

I worked by making a list of these ten topics with sub concepts in sub lists. I went back to my CS notes from uni where I could, in the event that I couldn’t find them (or the more probable: they were destroyed) I used a lot of online resources. A lot of uni’s provide their material online but as a Java student and applying for a Java based role I found these lecture notes and these practice questions invaluable because they covered the implementation aspect of the above topics.

Then I read. You name it - if Google was a keyword, I read it. Whenever I got tired of studying the concepts I read about peoples experiences and various tips, I read (and worked) practice questions, more practice questions and what not to do and more practice questions.

In my breaks (breakfast, lunch, dinner) I watched video’s from the Google channel. After revising for the Google Interview I found this particularly interesting viewing.

Then I began everything again, this time programming on a piece of paper. You’d be surprised at how different programming is without a compiler. Things like “for loops” just dont look the same written on paper as typed on a computer screen. The IDE no longer helps you out, there’s no bracket matching or syntax highlighting to cover your ass. It’s strange - believe me, the last place you want to be learning this is in the interview.

I flew into Sydney the day before the interview, the 5 hour flight was useful to revise things. Remember to bring more than just material to revise though, after the interview, on the flight back the last thing you want to be doing is reading through that stuff. Take off and landing (when electrical items have to be switched off and stowed) are great times to read through those research articles.

A word of advice. A particularly obvious interview question leapt out at me from one of the research papers I was reading. “How does Google work?”. It’s probably a good idea to have at least a vague understanding of this, you know, before you apply to work there.

The taxi driver was a software engineer, or at least studying to become one. He said he’d applied for Google as well. As nice as the guy was the whole experience didn’t instil me with confidence.

It was shortly after this the paranoia began to set in. I don’t know exactly how much it had to do with the taxi driver being a programmer but it occurred to me that if Google could afford to spend around a grand flying me here and putting me up for the night, that the could sure as hell afford to pay some security consultant / HR psychological profiler $50 an hour to watch my every move for the time I was in Sydney.

The improvement in my behaviour was remarkable, from that point onward I became the model child my parents always wanted me to be. Turning off lights when I left the room, cleaning behind my ears, watching the news, being outwardly curious - even outdoorsy. Elements that, to some degree, follow me to this day (6 days after the interview).

I checked into my hotel, fantastic views but not overly extravagant, functional. Had dinner in darling harbour and went through a final checklist before bed:

1. Have questions to ask, don’t be afraid to write them down - it shows you’ve thought ahead. I prepared a fair few. I tried to ration these out among my five interviewers.

2. Have a list of possible projects you’d like to work on. In addition to this tell them your ideas for Google. Tell them what annoys you about Google, but do some research into why its done that way (in case they have a valid and important reason that you’ve overlooked). If you’re not sure, you can kill birds 1 and 2 by posing this as a question.

Wasn’t sure what to do with a King size bed. Seriously, are there people who need this much freedom while unconscious?

In the morning I decided to take a look around Sydney. I visited the Harbour Bridge and the Opera House on a morning run through the city. I wanted to think that if this interview went to shit, I would still be able to say I got a free trip to visit the Google offices in Sydney, which is still a pretty good consolation prize.

I watched the news to ensure I was up to date with current affairs. Ate breakfast at the hotel restaurant while reading Larry and Sergey’s paper on Google. At 10.00 I checked out and began the walk next door to the Google Offices.

Part III

Add your comment

One response for this post

  1. Google is watching me - Part I. | Who is General Failure and why is he reading my drive? | Hello World Says:

    [...] Part II [...]

Leave a Reply