My Google Interview, Part 3. Zurich.
I've taken a couple of books to Sharm el-Sheikh with an intention to keep reading and preparing for the interview even during my vacation. Fortunately this intention did not become a reality and we had a great and relaxing holiday. Probably I was hoping that the cosmic energy of The Pyramids and Sphinx will inspire and help me better than any of these books:
(We will win - հաղթելու ենք)
While still in Egypt I have received my official onsite interview confirmation. The coordinator informed me that the interview is confirmed on 11th of February. Interviews were to start at 10.00am and I was advised to arrive a bit earlier. Confirmation email also mentioned the dress code as business casual:
Dress code: Business Casual - that means whatever you feel comfortable in. We care more about what you say than what you are wearing.
Confirmation email also described the interview format: 5 technical interviews, 45 minutes each with a lunch break with a Google team member. I was also advised to refresh my Google knowledge, research various Google products and the company background.
My air tickets to Zurich (via Vienna) was already booked when we returned to Yerevan on the 7th, so I've started to plan my journey. After printing several maps with directions I have spent some time making myself familiar with the hotel vicinity using google street view. The hotel (Four Points) was very conveniently located in a walking distance from the the Google office.
My plane landed at Zurich international airport at 8.30am on the 10th day of February. One thing I've noticed on my way from airport was that their trains were completely noiseless and very smooth. Compare that to soviet trains/trams which could be used for nephrolith cracking :)
Zurich was beautiful! It was snowing and quite cold and I was a bit surprised to see a couple of old ladies cycling on a snow like it was a nice summer day:
(see the bicycle wheel trail?)
It took me an hour or so to find the hotel, some of you may know that city navigation is not my strongest skill. The hotel was very good, and the receptionist knew I came for an interview and was very supportive. The only problem I faced was with my netbook adapter which had a flat plug and not suitable for local power sockets. Reception ran out of power adapters so I had to find a workaround:
First things first, I've headed to the Google office and measured the time it takes to walk there from the hotel. Now that everything was ready, I've spent the rest of the day resting and exploring the city.
The interview morning started with quick warm-up exercises, I've learned this technique on one of the websites mentioned in Part2: pick some random and simple algorithmic problem, e.g. inserting an element into a binary search tree, and write the code on a piece of paper. Believe it or not but this simple technique helps to switch your brain to problem solving mode. I had a very quick breakfast at hotel restaurant and headed to Google office.
Google Zurich building itself is not impressive at all, just a typical square gloomy building, not different from thousands of other buildings:
Interior, however, was very impressive. Once you enter the building you find yourself in a nice reception:
Unfortunately I was not allowed to take photos inside the building, and not given the opportunity to walk through the office and see all this cool places myself, but you can find a lot of pics here:https://picasaweb.google.com/photos.jobs/ZurichOfficePhotos
There's a special automated "candidate machine" for interviewees just after the reception. You have to type your name and it prints a sticky badge for you and also notifies your recruiter that you are already in the office and ready to go. While waiting for my recruiter on these eggy chairs, I've noticed a couple of other candidates were approaching the "candidate machine".. I wonder how many interviews they conduct per day ? :))
I've met my recruiter first and he explained the interview format, and talked a bit about the company and assured that all of the interviewers are very experienced and have conducted hundreds of interviews before. That was good news as there is no worse thing then an incompetent interviewer. He talked about the diversity of engineers and mentioned that they have engineers from many, if not all, European countries. My immediate question was whether there are any Armenians in the Zurich office. "As far as I know there are no Armenians here yet, and that gives you an advantage" he answered jokingly :)
I was then invited to a 3m x 3m room which had a whiteboard, a table and a couple of chairs. The fist interviewer walked in and we started.
It's worth mentioning here that unfortunately I do not remember all the interview details, I'll just try to describe as much as I remember, without disclosing any specific interview questions.
The first interviewer was a very steady person, never offensive and very supportive. I was given a very specific algorithmic problem and was asked to design a class and provide an implementation on a whiteboard. I've first described the general approach to the problem, and then implemented it on a whiteboard. The design phase was more like a discussion, it was obvious that the interviewer was trying to trace the way I think and the way I approach the problem. During this discussion I've initially made a couple of inaccurate statements, however this was all ironed out and a proper solution was found. My feeling was that overall the interviewer was happy with my answers.
The second interview was again very algorithm-centered. It was some interval-overlapping problem, I did not know the best solution and tried some ideas. Eventually after some discussion a reasonably good solution was found, we've talked about the complexities and I was again asked to write some parts of the implementation on a whiteboard.
The third interview was (very unexpectedly) web technologies oriented. Fortunately I had a plenty of web development experience, and did quite well on this interview. I was first asked to describe some high level concepts, and then some javascript questions. After all the web development questions were answered, the interviewer could not resist himself and asked a (quite simple) algorithmic question :)) One funny thing I've noticed is that all the previous interviewers were making notes in their notepads while I was talking and writing on a whiteboard. This guy was younger and less traditional: at the end of the interview he captured the whiteboard with his smartphone:)
I was invited to a lunch break after the 3rd interview, and a dedicated Russian developer guided me through their kitchen. They had all kinds of food served for lunch, and it was an interesting place to be. My first impression was that I'm in a developer Zoo... the people there were really different from each other. I've asked a lot of questions to my guide as this was actually a very good opportunity to learn about life in Google.
The fourth interview started just after the lunch, and this was the first female interviewer. Here again I was given a specific problem, and the format was pretty much the same as in the previous interviews. I do remember one difference though: this interviewer payed more attention to my coding skills and insisted on coding the full implementation on the whiteboard, not just the main parts. I think this interview went a bit harder for me then the previous three, I would expect the interviewer to grade me "average".
I was pretty much satisfied with my progress when the last interview started. This final interviewer was completely different from the previous four. Here again it was just an algorithmic problem, and it was a modification of a very well known (and quite simple) algorithm. The first part of the question was easier, and I could find a solution quite quickly. Then the original problem was a bit extended, and I've started as usual by trying some ideas, but received no feedback at all. "Please do it the way you like" the interviewer responded, and he did it in a quite offensive manner. I don't know whether it was done intentionally to test me in a highly turbulent environment, or maybe that guy simply had some serious communication issues. One way or another, I was completely knocked-out, and 5 hours of interviewing did not contribute in a positive way.. even though my approach to the problem was correct, I got very nervous and could not code the proper solution. This last interview was a failure, and a very disappointing one.
I've spent the rest of the day in downtown Zurich, indeed a very beautiful place:
Even though the last interview did not went well, I've returned to Yerevan full of positive emotions and was expecting an offer. I was thinking that if we take into account the 2 phone interviews, which were not any easier then the onsites, I've done quite well on 5 interviews, at least average on one and failed the last one. I was checking my email every couple of hours, and 2 weeks after the interviews I've received a phone call from my recruiter. I clearly remember my thoughts at that moment: "If it was a reject, they would have written an email..they have called, that means an offer!".
It was a reject. My recruiter was a very polite guy, and he explained that it was a hard decision, but since the interviewers had very different opinions, they have decided not to take the risk. I'm quite sure they tell this same thing to each and every rejected candidate.
This was perhaps the biggest frustration in my career, but it was not a waste of time. I've learned a lot of things, but more importantly, I've realized that working in Google is not a pipe-dream, it's absolutely possible. As I mentioned in part 1 of this story, all of the algorithmic problems will be familiar if you do your homework. You just need to invest some time and prepare.. and prepare very well.
This is the end of the story.. on a positive note, I've heard that Google is actively hiring right now, so it's probably a very good time for you to give it a try. Once we have enough developers in Google, who knows, maybe some day we'll see a new Google office in Yerevan? :)