Hello reader, in case you clicked on this article, it probably means that you would like to get an interview at Google once or already have it planned and you are just gathering some info as I did. I obviously cannot expose the coding challenges even though I would love to see how you would solve them and what you think about them. However, I would like to share my experience that might help you land an interview and also not fail it as I did.
How it went, step-by-step
I have always been creating “revolutionary” apps by “gathering” info and using services that are “out there” (I mean mostly at Google).
So, for example, when I moved to Switzerland and it was scary to go to a german course, I rather ended up creating bilingual subtitles for Netflix and Youtube. This app “by accident” used obsolete and unsecured Youtube API along with free translations by triggering AppScript on behalf of the user. After some heavier load from automated testing, API was of course taken down just two days after the first release, and soon I got a LinkedIn direct from an interviewer. Even though I love to think it helped me, it might be just a coincidence. Unfortunately, the interviewer said that it was a normal search process. Well, let me know in the comments if you think it was just a coincidence!
At first, I thought might be a scam. Why on earth would Google be sending me a message on LinkedIn?
I found out it was no scam after we exchanged a couple of messages, so we scheduled the next steps. There is a Google meet interview at first, so the interviewer gets to know you and your story. In the end, he/she gives you a couple of technical questions like “what is the difference between interface and class”, “what is the time complexity of the A*, Djisktra algorithms”, etc.
If you pass, then you have as much time as you need to go through various materials and will be able to ask for a technical interview afterward.
Such an interview takes 45min and you will meet (most likely still online) with an engineer and will program in the shared document with the language of your choice. It is not a plain Google Doc as many sources say, but rather a document with syntax highlighting and no checks.
The task is pretty much structured like in this video and I always felt like you can find an analogy to real-world problems (highways, shops, parking, route planning) or things that might be related to Google software you know very well already (working with events, sorting mails into folders or similar).
45 mins sound like a lot, but along with the introduction, task break-down, design, plus implementation, testing, possible improvements, and constant communication on the topic, it is pretty fast over and does not leave a lot of room for error (at least for slow talkers like me).
I started with a Cracking the Coding Interview book which contains a lot of useful information on the process and the nature of the interviews but is also a bit outdated. Brain teasers are no longer part of the interviews, so you don’t have to spend too much time looking at them, even though they might be quite interesting. Moreover, tasks are a bit more complex than I experienced and I would recommend just reading through them quickly or covering the simpler ones.
The best approach for me was to highlight what I should know, write notes, or watch Youtube videos on these topics to review university studies. BTW, these videos are from the same author as the book mentioned above, and find them great.
Code, code, code. I spend a lot of time trying to see if I am able to code all the data structures and tasks I found online that relate. E.g. breadth-first-search and depth-first-search to find flight connections between destinations.
Aaannd, don’t forget the Big(O) notation, this seems to be a must-have.
After I passed the first technical interview, I have been invited for 5 interviews that have been split into two days. This contain 4 technical interviews same as the previous one (always with a different interviewer) and one “Googleyness” interview where you are asked behavioral questions as they evaluate if you would be a great fit for Google’s culture. I would recommend preparing for it well, and relating your answers to Google’s “Build for everyone” motto. I found many useful tips on LinkedIn and wrote down my own answers to various questions like “How did you solve a conflict between two colleagues..”, “When did you fail and what have you learned…” and questions that are simple, but require a small review of your past experience.
Now you will be sitting ducks and waiting…Interviewers fill out questionnaires, and then the committee will decide if hire or not hire. After two or three weeks an interviewer scheduled a call with me and asked me how I think I did, giving me feedback for each interview like “you spent not enough time designing a solution” or “you have been slow in one interview”. Even though recruiters don’t know the exact task or order of the interviews, you can quite easily assume which one it was.
The first time, I bombed two interviews and was not able to solve the questions. Therefore, it was pretty much understandable that I failed. To sum it up, the people were mostly super nice and you always get five minutes to ask questions, which might also give you more idea about the culture there.
The whole process actually took from November to the end of February, so don’t pack your things yet, if you have been invited for an interview.
After two months another interviewer contacted me that I had a lot of potential the first time and I should try it again.
So I took the papers off the shelve and also re-implemented tasks from the first interviews. This made it extremely easier because I already knew the process and what is actually important. Also, I learned many tricks I did not use often before.
This time I was able to go to the last round and had only 4 interviews I could bomb. I honestly think I did soooo much better and was confident about the results as I really enjoyed the interviews this time.
But weeks after I got disappointed again.
Anyway, it went by better and I was even able to propose an unconventional data structure and code one task using three lines of code. This was a super interesting interview where we talked a lot and I was thinking that this must be the “Googleyness” I heard about. Overall, the interviewer was happy, but now I did not get feedback that I spent too much time designing, but rather a lot of time.
Therefore, it might take multiple tries to get in, but I am honestly glad that I got to experience this and was motivated to step out of my comfort zone and learn something new.
They are definitely looking for great minds and you have to earn your place there. Even though I am now not sure it would be the right company for me, I would repeat the interviews just to solve some interesting tasks and get the “AHA” moment when one realize it was super simple.
Don’t forget to build your CV, so they find you
- IMO applying is not the most common way how Google discovers talents, therefore you need to make sure that you stand out a bit. Recruiters will find you if they want to.
- Write a blog, or simply share your knowledge with others in any way that suits or challenges you. Writing an article, or preparing a presentation helps to get even more knowledge and improve your soft skills more than you think.
- Get out of your comfort zone, and maybe do some public speaking at conferences, universities, and meetups or engage in some hackathons. This is done best if you find an employer that organizes regular training and has speakers involved with the community.
- Don’t be afraid of change, move to a foreign country (preferably closer to one of the tech giant’s offices), switch fields just to learn something new, and find the courage and time to follow your passion.