For most people the name Google is a verb for “search on internet” or there is now a saying ” Always use Google before you open your mouth”. For most software engineers , it remains the king of the hill in hi-tech. Most of my knowledge reading come from Google engineers. I once encountered Romain Guy, an engineer on the Android team. Then later I discovered stackoverflow.com a Q&A exchange for programmers, where Jon Skeet is a living legend. The guy spends 20% of his work time on Microsoft technologies, and he knows way better than the team who designed them at Microsoft. Personally for me, Google is by far the most selective of all tech companies. It’s the McKinsey of the high tech.
Last year around November 2010 , a technical recruiter from Google contacted me, he was scouting on any networks . At least I looked good on the paper. But what about the real stuff ? I did not respond because I heard rumors about their interview and had other priorities.
But in July 2011, I saw a job update that may interest me. One was from Google Paris, where I’m living. As far as I know , a software engineer position at Google in Paris is rare they only have marketing. (though today they just had a new office opening ) . Grabbed myself ” You’re going to regret it , Ray for the next 10 years if you let this occasion slip” . Some friends say it’s just a company, no myth behind.
Before you send a resume
I got many job offers previously without reading a how to write your resume, preparation at a job interview. But still for me Google is another beast. I purchased “the google resume” by Gayle Laakmann McDowell. In fact I learnt some truths : when you write about past experiences put quantifiable accomplishments . Had I known before, I’d have done it for previous positions.
This post is also interesting in this regard http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html
Interview 1 phone screen
Well I admit, I almost did nothing during the day the resume was sent and the first contact from Google staff: 2 weeks passed. I should have studied. Someone from Zurich arranged for time schedule on 20 minutes phone interview. We agreed on November 4 Friday “In Paris, your resume was turned down. I’m a recruiter in EMEA, based in Zurich”. Turned down Paris, the place I applied to. Zurich it’s even better . I saw the cost of living , the pay is more than double and cost of living is not as high. That’s worth it.
She said she saw on my resume “automatic testing” . They have open positions on the Chrome team for automatic test . Google Zurich is the biggest office and the main engineering force in Europe. Not what I was expecting. Rather than saying “yes” to enter the boat and hope to land later on the dream job. I stayed true to myself :
“As great as Google is, I’m not really interested in Chrome. Don’t you have exciting projects on mobile Android, Maps .. ?”
– Don’t worry . If you want I can forward your CV to London, it’s the main mobile expertise in Europe.
Yes great. She answered several questions and presented the company in general.
After the weekend I received an email from London.
With her agenda, we agree for an phone interview Thrusday 10 November. I booked a room conference at my work place. Day d , just a few minutes before some dumbass take my room.
– Did you check on Outlook the planning ?
– yeah but we need it now . So who is on the phone ?
– it’s a girl. ( white lie ; can’t say it ‘s for a job interview )
– well you don’t have the priority.
Don’t be afraid to postpone for your phone call. The recruiter will understand it. Luckily November 11 is a day off in France . We chatted what interest me and the open positions.
– So we have a smallish mobile team for Youtube. with her Eastern European accent . Because technology changes fast , we are looking for people who can adapt fast and have a strong core understanding. You will write on google docs. The code you write must be compilable. Are you comfortable with Big O notation, algorithms and data structure ? You’ll get these at the technical interview.
– Oh actually the recruiting is so fast. I wanted to buy more time to study. I practiced on “Cracking the coding interview” by Gayle Laakmann.
– OOOHHH so you already prepared yourself. Do you know people at Google ?
– Not personally , Jon Skeet answered some of my questions. And I bought Reto Meier ‘s book . I mentioned both because they’re working in London so she may know them.
– AH GOOD, I will give you some resources where you can prepare for the interview.
An hour later, she sent a list of topics the engineer might ask.
Technical warm up
For this one, I took 2 weeks of revision. Most topics are common place in Computer Science program : singly/doubly linked list , sorting and searching …
Others I maybe knew : trees & graphs , red-black tree, stacks & queues … Others I never heard of such as NP-complete .
Or the infamous “estimate how many golf balls can fit inside a bus school ?” . Not hard once you know how to deal with Fermi problem .
I practiced the problems for a few hours before sleeping. By practice I mean : coded in developer tool & tested it , wrote the same code on paper, wrote on google docs.
The syntax highlighting , code completion make life easier . It’s like comparing write Chinese with pinyin on the keyboard, and handwrite the Chinese characters on the whiteboard.
I didn’t have to sign any NDA . I was emailing some friends about the content of google interview with gmail . Hope big brother is not watching 🙂 , they don’t care .
Interview 3 : real stuff
The day Monday 28 November at 10 am UK time. The engineer was late by at least half an hour.
– So I want you to check whether a #@## puzzle is correct or not ?
– what kind of puzzle ?
– #@## puzzle .
– Can’t you just write your question ?
I prefer the Eastern European accent than the thick native English speaker accent . He sent me a link . Oh I understood : a sudoku puzzle. I barely know the rules. I asked:
– So what are the constraints ? Each number from 1 to 9 is unique on each row and column . Other contraints ?
He gave me a hint each 3*3 small grid contains a unique number from 1 to 9.
Obviously the grid is a two-dimensional array of integers. I wrote the method to check uniqueness on the row. Idem on the column.
No impression of conversation, I was stressed to have silence during my writing.
At the end , he asked what I didn’t do . I answered :
– Check the extreme case values : what the puzzle contains negative numbers or greater than 9.
– check the size of the puzzle .
He seemed satisfied to hear these answers.
After this, in retrospect I found more efficient & shorter ways to solve the problem. Though I don’t think I can do it in 30 minutes .
But in the privacy I could do it much more efficiently. Not my lucky day.
45 minutes is short. But if you think what about you can accomplish during this time frame.
In the afternoon, I went to work. My manager scheduled a meeting at 5pm to know my work progress, I had 3 hours of work so 4*45 minutes. I was as productive as having worked 8 hours this day.
A week after, the london recruiter contacted me. On the phone she said : ” Sorry about the delay, the software engineer was … But we decided not to go further . We can’t thank you enough for your interest in Google’s careers and unique culture; we hope you will remain enthusiastic about our company.”
Anyway I would not like to work Mr Sudoku , not my fit . But I feel energized by the smartness of engineering at Google. You really feel the engineer driven culture. But still felt it was more about luck.
You’re tested on a small set of knowledge . It’s more about to have encountered the type problem before you’re asked. Brain teaser like : “Why are man holes round ?” , if you read it once, you know the answer . Otherwise it’s almost impossible to answer it or it takes much longer.
No creativity tested, they don’t value design skills . Steve Jobs would not get even a job at Google if he passed the standard interview . Come on, his inventions are leading the industry. His presentations make fans excited. Does he know Cocoa API and Big O notation ? No.
I have the feeling they don’t care much about what you did previously. The sudoku guy admitted he didn’t read my resume. It leaves many holes in the recruiting process . It’s more relevant to test a candidate on the field he/she will be working on. Ask a marketing person on sorting algorithms tells a lot about the ability to perform, huh ? Anyway I’m glad I went through the interview. At least I know how to prepare for the next interviews either Google or others.
And to demystify their eliteness, the folk who speak at conferences & publish books only represent a very small minority .
In working environnement no one needs to know about the fancy algorithms . In real life, most IT professionals have a buzzword of keywords in their resume . But very few know how to implement themselves. It’s just magical. And the truth some bozo have these words in conversation and CVs, but never applied them. They’re the kind of people who talk about cloud computing because they have iCloud devices but never understand the most basic of distributed systems.
And worst in the entreprise IT world , managers have the reasoning the outcome of project is proportional to the number of people involved. The more people you have, the more things can be done. Especially on consulting side where more people equals charge the customer more == more money.
Quote People who Get Things Done but are not Smart will do stupid things, seemingly without thinking about them, and somebody else will have to come clean up their mess later. This makes them net liabilities to the company because not only do they fail to contribute, but they soak up good people’s time.
Writing code is not just interpret the requirements, but the talent to implement and ship a product. There are some fields where an individual can accomplish more than a group of people. Take football for example , anyone can kick the ball , a few can score a goal, much fewer can score against pro players . Lionel Messi , one the top football player, will score better than ten random people picked in the street. So the number of players is more important than individual talent ?
Anyway I feel better to invest time in learning the fundamentals because they still stay true over time . While technologies get depreciated pretty quickly, 1-2 years . Android 1 came out in 2008. Android 4.0 was released in 2011. A lot is not backward compatible, a lot new features arrived.
At least I have six months to prepare ( if I don’t have a better opportunity before ) , instead of 2 weeks . I hope you enjoy this reading. Feel free to reply.