How To Prepare For Google Technical Interview (Or any interview)

Di Fan
4 min readNov 3, 2019

Foreword: I am writing this article because I have been asked this question quite a few times recently, and each time I tend to answer something slightly different as I don’t remember things very well. So I want to put down the (timeless) thoughts once and for all.

Disclaimer: I work at Google, Inc as a software engineer. This article represents my personal opinion and not the views of my employer.

There are plenty of guides online trying to help you prepare for a technical interview (for Google and other companies); however, I think most of the people who aspire to work at Google make a fatal mistake: they do not pay enough attention to what Google has to say (in terms of how to prepare).

This doesn’t make sense. Google publishes a How We Hire section on the career site to help people understand the process and prepare, yet many candidates fall short of the expectations outlined there.

The rest of the article will take the perspective of applying for a technical position, since this is what I am most familiar with, but the same principles should apply for other positions, or even other companies.

Preparing for Interview

Suppose you are selected for interviewing with Google; the team here already think you might have what it takes to work here, and now it’s your time to prove that. But what is ‘that’? What do you need to prove during the interview?

Google describes the things it looks for in interviews in the Interview page of the How We Hire site. For example, for a technical interview, the page lists things such as (quoted from the page linked, while the emphasis are mine):

You will be asked an open ended question. Ask clarifying questions, devise requirements.

That’s right. You are expected to ask clarifying questions and devise requirements. Maybe you will think: Oh, the question given is straightforward! But is it? Are there things that you might have overlooked?

The same point is rephrased again on the page later:

We ask open-ended questions to learn how you approach and solve problems. And there’s no one right answer — your ability to explain your thought process and how you use data to inform decisions is what’s most important.

How many people do you think would do a good job demonstrating all that during an interview? Yet, Google does tell you right on this page these things are expected from the interview.

Moving onto coding, there are also quite a few things Google wants beyond just have the problem solved:

Also make sure you consider corner cases and edge cases, production ready

Optimize the code, follow it with test cases and find any bugs

Be sure to test your code and ensure it’s easily readable without bugs

You might think it’s a trivial requirement to expect people to write tests for their codes or have a methodology for finding any potential bugs; however things like these do filter out a lot of candidates that otherwise would seem qualified.

That being said, it’s still important to have the required technical knowledge, e.g. data structures and algorithm, trees and graphs, etc. Steve Yegge’s timeless article Get That Job at Google covered those well (Jump to “The Warm-Up” if you want). However, I think many candidates focus too much on the technical knowledge but not enough on the other skills (which usually get developed by actually doing interviews and explaining your ideas to others).

Preparing for Resume / Online Application

Well now suppose you haven’t got an interview with Google yet, but are nervous about sending out your application. Google also have an Apply page to help you prepare your resume. It talks about things like `Align your skills and experience with the job description`. which some might find vague but is actually very actionable.

Take this Software Engineer job posting for example, the job responsibility includes “Design, develop, test, deploy, maintain and improve software” and “Manage individual project priorities, deadlines and deliverables”. Does your resume covers one or more of the ‘design’, ‘test’, ‘deploy’, ‘maintain’, and ‘improve’ activities? Does it include any projects that would demonstrate your ability of managing priorities and deadlines?

Preparing for (Any) Interview

As you can see, companies often have some very specific things in mind when it comes to hiring. They want people that can do the job, whatever that entails. Google does define what it looks for in candidates quite well, and use those as the basis of its Data-Driven Decision Making. Even though some other companies might not be able to spell it out as clearly and well-defined, the same logic applies. For example, the engineering head at a start-up would have some very specific ideas about what the next engineer to be hired should be able to do, in order to bring the company’s product to the next phase. The interview is the place to showcase that you can meet what the hiring manager / interviewer is looking for, and to succeed at those interviews, it’s crucial to understand what they are actually looking for, as simply solving / answering questions by itself often wouldn’t be enough.

--

--

Di Fan

Traveler, Reader, Dreamer. Writing highly deletable codes.