(I wont be giving any technical questions I was asked. There are a lot of pages where you can get such information.)
I was minding my own business…
…when I received an email from a Google recruiter. At first I thought it was a prank or a scam. But email came from google.com domain. At the time I was also sceptical since somebody could have created their own mail server and “SMTP” that email to me. But after some research I came to a conclusion that this is for real. I couldn’t believe it! I decided to answer to that email and give it a try. My recruiter (lets call him Danny) Danny scheduled a call with me the next day. He was really, really pleasant and easy to talk to. Danny asked me about my work experience, and some basic Computer Science questions (which I was actually looking forward to). Few days later Danny called me to schedule another interview. Only that this was a technical interview.
Preparations++
I couldn’t believe it…I had interview with Google. I quickly gathered all my Computer Science books and started planing. Beside reading books, my plan was to solve as much problems on HackerRank as I could. And I actually did quite good. Better than I expected. I solved maybe hundred(s) of problems. Any kind of: string manipulations, bit manipulations, recursions, dynamic programming, linked lists, queues, hash map implementations, all kind of binary tree related families including red black tree, AVL, math (combinatorics, probability,)… I was preparing in Python (and Java for the onsite interviews) since it allows me to think about algorithms and solutions, and not about language itself. For example: if I wanted to create hashmap in Python I would do something like this:
hashmap = {}
# or even something like this
from collections import defaultdict
hashmap = defaultdict(int)
as you can see it’s not a lot of characters and basically you don’t have to implement some Value classes and some unrelated classes for solution but needed for algorithm.
while in Java that would like something like this:
import java.util.HashMap;
...
HashMap<Integer, Integer> hashMap = new HashMap<Integer, Integer>();
For that reason I decided to practice everything in Python.
My phone interviews with Google
I clicked on the hangouts link they’ve sent me and then I waited…and waited…It felt like hours. And then first interviewer logged in. I was so eager to get my first problem. It was about some recursion which started easily, but after some follow-ups it became weirder. Since I was a little bit scared, excited, happy, full of all kind of emotions :) interviewer was kind enough to push me in right direction. I was writing it on shared Google document, so there weren’t any syntax highlighting features (which I think is great because it made me aware of the code I wrote - and I was thinking). Few days after the interview ended Danny called me to tell me I passed and I am moving on. Danny scheduled another phone interview. The second interview went the same as the first time. I actually managed to solve two problems and still had time to talk with interviewer about “life at Google”. The results came back positive.
That means I am going to the onsite interview in London, UK
:) I could’t believe it. I had about one month to prepare for onsite interview. I stayed late for hours and practiced on all kind of algorithms, harder than before.
London
I arrived one day earlier. I had the time to do some little sight seeing. It’s the town I could live in and see my future in. I had five interviews. One of the five was about designing a big scale system. Unfortunately I cannot go into any details about the particular questions I was being asked. But I all can tell you is that they weren’t hard if you prepared earlier :). I enjoyed and liked the talk I had with the interviewers. I had the feeling I was talking with the colleague of 5 years and talking about something we both love to do.
Conclusion
Unfortunately I didn’t get the offer. I was quite sad, but I can always try again. Since I talked a little bit too much on the interview I didn’t had the time to do some real programming. So next year less talking and more programming for me :).