I’ve interviewed at Google twice in the last two years, and learnt a few important lessons along the way. I’ve interviewed at about 20 companies so far, and my Google interviews are definitely one of most fun. I interned at Google during the summer of 2015, and recently received another offer for the summer of 2017.

A lot of my friends were interested in learning about the process, interview and how I prepared for Google’s interviews, so this is a short post on my experience with Google’s interview process.

This post is about Google’s Software Engineering Internship interview, but some parts are quite applicable to full time interviews too.

I’ve broken it down into parts, so just skip the parts you that don’t interest you.

The Application

Google’s application is pretty straightforward. Head over to https://careers.google.com, find the role that interests you, upload resume. Cover letters are not necessary.

One of the recruiters will reach out to you with the decision to either interview you or not. It takes some people a few days, and some have heard back after 4–5 weeks too. So don’t jump into conclusions too soon! In my case, I heard back the same day the first time, and it took me a week the second time.

If they decide to move forward, you’ll be asked for a list of dates/times to schedule 2 tech interviews. You might also be asked to fill out a candidate questionnaire asking you about team and location preferences. Fill this form carefully, for if you make it to the host matching phase, your match will be based on what you have entered here. Be clear and concise on the subjective portions of the form.

The Interview

In order to receive an offer from Google, you only have to clear 2 tech interviews (usually telephonic, in person if you interview at your school), and a semi-tech interview with the interested host (more on the host matching phase later).

Usually the interviews will be aligned back to back. Be prepared to write a lot of code. If you are attending it in-person, you will use a whiteboard. If telephonic, you will probably be using a Google Doc or Hackerrank’ Code Pair. The interviews are 45 minutes long, and a few minutes to ask questions of the interviewer.

The interviews will test your knowledge on algorithms, data structures and your coding ability. No puzzles or brain teasers, nobody asks them anymore AFAIK. Go through Introduction to Algorithms. Reading the Cracking the Coding Interview and Programming Interviews Exposed will definitely help. One can easily find old Google interview questions on sites like Glassdoor.

Here are some tips for the interview:

Think out loud . The interviews are designed to test how you break down the given problem, how you identify good edge cases, your thought process and your coding skills. Hence it’s very important to vocalize your thoughts — your interviewer is not a mind reader.

. The interviews are designed to test how you break down the given problem, how you identify good edge cases, your thought process and your coding skills. Hence it’s very important to vocalize your thoughts — your interviewer is not a mind reader. Don’t jump into writing code . Spend a moment to analyze the time and space complexity of your algorithm, and discuss it with your interviewer. If there is a more efficient solution available, your interviewer will drop hints. 45 minutes is too short to write a O(n²) solution first and then optimize it (in some cases it might actually be the best).

. Spend a moment to analyze the time and space complexity of your algorithm, and discuss it with your interviewer. If there is a more efficient solution available, your interviewer will drop hints. 45 minutes is too short to write a O(n²) solution first and then optimize it (in some cases it might actually be the best). Make generous use of data structures . The questions are usually designed to test that, so as soon as you understand the question, think about what data structure(s) can be used to solve your problem faster. Think: linked list, array, stack, queue, binary tree, BST, graph, hash table.

. The questions are usually designed to test that, so as soon as you understand the question, think about what data structure(s) can be used to solve your problem faster. Think: linked list, array, stack, queue, binary tree, BST, graph, hash table. Manage white board space. If your are using a white board, use the space carefully. Practicing on a white board before the interview helps a lot. Plan what’s going to go where.

I divide my white board this way

Test your code. I list down edge cases and a few regular inputs on the side and keep testing my code on the fly to check if I’m missing anything along. Watch out for ‘≤’ and off by one errors. Handle nulls. Think about scaleability of your code.

Personally, I would rate the interview difficulty: 4.0/5.0. For comparison, my Facebook interview difficulty was: 3.5/5, Bloomberg interview difficulty: 3/5.

After the interview, use the remaining time to learn about what your interviewer is working on, and any other question you might have (don’t ask how you performed or how you can improve).

After your interviews, your recruiter will email you about the results in a few weeks. If you made it to the next round, congratulations! Else, wait for a year and reapply.

The next phase is called “Host Matching”, is it’s the only part of Google’s process that could be a bit annoying. Apart from all the waiting.

The Host Matching Phase

Once you clear the technical interviews, you enter the host matching phase. You’ll have 6 weeks to match-interview-offer, and if you don’t, that’s the end of the road for you. If I understood correctly, potential intern hosts browse through the candidates in the host matching pool, probably indexed based on the information you entered in the intern questionnaire you filled out previously.

If a manager feels you would be a good match for his project, your recruiter will email your about the project and schedule a 20 minute call with the host. The host call is sort of technical — no coding, but you will be talking about the tech involved and your previous relevant experience. The host is looking if you have the necessary skills for the projects and if you are interested. It’s also an opportunity for you to learn about the project, team, location and decide if it’s something you would like to spend the summer on. A few candidates get multiple matches, a lot get at least one, and a lot do not even get a match. The host will also interview a bunch of other potential candidates, and let you know if he is interested in working with you. The recruiter will also ask you if you are interested in the project.

If both you and your host agree to move forward, then your recruiter will formally draft you an offer.

Hurray!

Yaay!!

The Offer

You will receive a call from the recruiter about the pay, perks and accommodation. Google’s compensation is very generous and the perks amazing!