Preparing for FAANG companies takes time and effort because of the difficulty behind the interview process for each one. For instance, Google is recognized for having one of the most challenging technical interviews and rightfully so, since it is one of the most successful companies in the world.
At Interview Kickstart, we have guided over 3,500 engineers as they prepared to successfully interview at FAANG and other top-tier companies. With many of our Technical Instructors and Career Coaches having worked at these FAANG companies before, we are very aware of what it takes to prepare for these tough technical interviews.
In this interview guide on cracking technical interviews at Google, we will share how the interviewing process works at Google, the qualities that Google looks for in candidates, what topics to expect to see during your interviews, and much more. Let’s dive in!
Google Interview Process
DISCLAIMER: Keep in mind that interview processes differ from one candidate to another. Every candidate is evaluated by different recruiters and interviewers as well as being asked different questions for different roles/domains. Based on our research, below is a common process we see candidates experience today :)
1. Initial phone screen with a recruiter
a. Part I - Recruiter Phone Screen
In this first part, you will be contacted by a recruiter who will go over your work history. Many candidates get eliminated at this stage so you shouldn’t take these lightly. Some technical questions can also be asked, based on topics such as Quicksort and Bubblesort. Answering these efficiently will get you into the next part.
b. Part II - 45-minute technical phone screen with an engineer
Only 1/10 candidates succeed in this part of the phone screening process. You will be asked basic coding questions about projects you’ve worked on and might be asked to solve a problem in a google doc.
c. Part III - Another 45-minute interview but with a different engineer
In this final part of the phone screen, you will have an interview with another engineer. You will be asked different technical questions.
2. Onsite interview with four Googlers
The onsite interview process consists of 5 rounds of 45-minute interviews along with a lunch interview. You will be asked to solve a variety of technical problems on the white board and/or laptop.
Qualities Google Looks For In Candidates
What stand-out qualities does Google look for in its candidates in their interviews?
1. Coding and Design skills
Google expects their job applicants to have mastered at least one programming language, preferably C++, Python, Java, Go, or C. You will be asked interview questions from a wide range of topics, such as APIs, Objective Oriented Design and Programming. Be sure you have a conceptual understanding of these topics.
2. Problem-solving skills
As a programmer, you should be aware that this is a prime quality that Google looks for in its candidates. Problem-solving is a quality that should be built into you already, so be prepared to answer some tough technical interview questions.
3. Effective communication skills
Not only do you need to be well-versed in your programming skills, but you also need to be a good communicator. Google values individuals who can communicate their ideas in a clear and concise manner. You will also need to be a good listener as well since you will almost always be working in a team.
4. Know how to write code/solve algorithmic problems on a whiteboard
During the Google onsite interviews, you will be asked to design algorithms on a whiteboard. As compared to writing code on a computer, it is a completely different experience. Train yourself with either paper or an actual whiteboard if you want to increase your chances of success when the day finally comes.
5. Leadership skills
Google looks for candidates who are not afraid to step up to the challenge and understand when it is time to step out when their expertise is no longer needed. Excelling in this facilitates strong teams with diverse backgrounds and experiences.
6. Cultural fit
Google calls this your “Googleyness.” Google’s hiring managers will observe how comfortable you are with ambiguity and humility. They will also be keeping an eye on how you work individually and on a team.
Qualifications for Roles at Google
For qualifications for each role, we looked at Google’s Career website for job descriptions for roles we see our students aspire to interview for.
- Minimum qualifications:
- BS degree in Computer Science, similar technical field of study or equivalent practical experience.
- Software development experience in one or more general purpose programming languages.
- Experience working with two or more from the following: web application development, Unix/Linux environments, mobile application development, distributed and parallel systems, machine learning, information retrieval, natural language processing, networking, developing large software systems, and/or security software development.
- Working proficiency and communication skills in verbal and written English.
- Master’s, PhD degree, further education or experience in engineering, computer science or other technical related field.
- Experience developing accessible technologies.
- Interest and ability to learn other coding languages as needed.
- Minimum qualifications:
- Bachelor's degree in Computer Science, related technical discipline or equivalent practical experience.
- 10 years of relevant work experience, including technical management of software developers and system administrators/architects.
- Experience designing and implementing distributed systems.
- 12 years of relevant hands-on technical management experience of software developers and systems administrators/architects.
- 5 years of experience in leading highly-complex, technically-challenging, cross-functional software oriented projects from inception to delivery.
- Track record of individual technical achievement.
- Excellent C++, Java and/or Python skills
Google Interview Questions
It is important to note that Google, like all other top tech companies, have a number of interview questions that they rotate between. Problems are also frequently removed from the rotation, and new ones will pop up on a regular basis. The most effective and efficient way to prepare for technical and behavioral interviews is to look for conceptual themes and patterns, rather than looking for “what questions are most commonly asked at company X”.
If you want to ace interviews at the most competitive companies, place an emphasis on pattern recognition and building your problem-solve skill. This is the only way to solve problems that you have never seen before and the only way to fully explain your solutions.
That being said, here are some of the most common questions we see today:
- Technical Questions:
- Demonstrate how to reverse a linked list.
- Find the formula to solve an nXn Magic Square problem.
- Search a max value in an unsorted array in better than O(n).
- Find out the fastest way to locate the largest element in a circular sorted array.
- How do you convert a max heap to min heap?
- How will you implement three stacks with one array?
- Can you design a data package transfer from London to Tokyo?
- Can you write code to implement your own hashtable in C++ or Java?
- Do you like coding or designing applications?
- Given an array of size n, find the majority element. The majority element is the element that appears more than floor(n/2) times. You may assume that the array is non-empty and the majority element always exists in the array.
- Given a 2D binary filled with 0’s and 1’s, find the largest rectangle containing all ones and return its area. Bonus if you can solve it in O)n^2) or less.
- Given a string A, partition A such that every substring of the partition is a palindrome. Return the minimum cuts needed for a palindrome partitioning of A.
- Given a string A and a dictionary of words B, determine if A can be segmented into a space-separated sequence of one or more dictionary words.
- Design a messaging service, like Facebook Messenger.
- Given two numbers represented as strings, return multiplication of the numbers as a string.
- Design a search typeahead (Search autocomplete) system at Google’s scale.
- Given numRows, generate the first numRows of Pascal’s triangle. Pascal’s triangle: To generate A[C] in row R, sum up A’[C] and A’[C-1] from previous row R - 1.
- Given an array of integers, sort the array into a wave like array and return it. In other words, arrange the elements in a sequence such that a1 >= a2 <= a3 >= a4 <= a5…
- Given 2 non negative integers m and n, find gcd(m, n). GCD of 2 integers m and n is defined as the greatest integer g such that g is a divisor of both m and n. Both m and n fit in a 32 bit signed integer.
- Behavioral Questions:
- How did you go about accomplishing a specific project?
- What is a technical challenge you overcame?
- What is your favorite Google product? How would you improve it?
- How did you deal with a group conflict?
- Tell me about a situation when while working on a project you had to learn something you didn’t know.
- How do you sort priorities when engaged in multitasking?
- Do you prefer earning or learning?
- Tell me about a time when you effectively managed your team to achieve a goal. What did your approach look like?
- Tell me about a time you failed. How did you deal with this situation?
- Tell me about a time when you faced a problem that had multiple possible solutions.
- Let’s say you need something important from a coworker and that person isn’t responding. How would you deal with this?
Google Interview Tips
- During the phone screen and onsite interview, think out loud and speak as clearly as possible when describing your thought process to your interviewer while solving the problem.
- It is important to consider edge cases and test your code, even if it is a minimal problem. You will be deducted points if you do not do that.
- If you ever encounter a moment where you feel as if you are unable to solve a problem, slow down, simplify the problem, challenge your assumptions, and keep attempting to solve the problem from many different angles. The interviewer might even give you hints.
- Don’t be afraid to ask your interviewer questions about the problem.
- Be prepared to share specific examples and stories of what you’ve done/accomplished in your professional career.
- Always repeat the question in your own words and clarify the problem requirements. Doing so helps demonstrate your comprehension in your own words.
- If time permits, don’t be afraid to backtrack and improve your solution to the problem.
- Use a whiteboard to draw out real examples like an example array or binary tree.
- Have two or three questions prepared to ask the recruiter and each of the interviewers (including technical interviewers). Also, it's ok to ask the same question to multiple interviewers ;-)
- (Recruiter Phone Screen) Read up on the role and company ahead of time.
Google Interview Experiences
To grasp a better understanding of actual interview experiences at Google, we looked at some experiences from candidates who received an offer from one of the biggest companies in the world.
1. From an ex-Google software engineer
- “I was given the option to use a laptop if I wanted to, which I did. As a side note, I would highly recommend that if you are given that choice or option, take it. Personally, I think that it’s just far easier to actually write out code on a laptop than it is to do so on a whiteboard and the beauty is that you can actually use both.”
- “That first interview was very interesting...two things stuck out to me that was interesting. The first is that during the sort of introduction of the interview, we chatted about my projects on my resume...Put at the top of your resume the things you are most proud of that you think are going to be the most impressive...the second thing is at the very end, the last lets just say 10 minutes, we had this sort of discussion about parts of the interview.”
- “The second interview went very, very well. I remember that interview was sort of like the interview where it just went well. I knew I was able to come up with a solution immediately able to come up with a pretty optimal solution to optimize on that of that and then optimize it even again on top of that.”
- “The third interview was very similar to the previous one. Maybe a notch lower. I came out thinking I did well.”
- “Just a normal lunch interview. It will have no bearing on your application. The person I had lunch with ended up being on one of my sibling teams at Google once I worked there. Apart from that, nothing special.”
- “Then the fourth interview came along and I vividly remember finding that particular interview very difficult. I remember thinking, “wow, these engineers don’t kid around.” But I also remember coming out of that interview very good and feeling like I had done very well.”
- “What I did in that interview, which I always recommend that other people do is I really treated it as I am with a coworker, we have been given a problem we have to solve together, but I am the one leading. I am the one doing 80-90 percent of the work but I’m sort of trying to have a conversation with this coworker of mine. Here, I am speaking about the interviewer and I’m just going to try to solve this with him...Two people [just] working on a problem together.”
- “Finally, the fifth interview, nothing too special there. It sort of felt similar to the first interview. I came out of it feeling neutral.”
- “Finally, I got the phone call...it was very positive and I’d gotten a hiring decision from the hiring committee.”
- “The final hoop after matching with a team and manager is called the ‘Vp and SVP sign off.’ They have to review your individual packet and sign it off.”
2. Interview with Divanshu Who Got Into Google, Mountain View
- “According to me, all the four interviews had a similar difficulty level. During all the interviews, the difficulty bar was raised slowly as we approached the end of the interview.”
- “I was required to send all my grade cards after one week of the interview process. Then they reviewed everything and the offer was given. So, I believe that grades were also a factor involved in the selection process.”
Resume Building Tips
Introduction Section (Summary/Objective & Technical Skills)
- List your most proud/impressive project you think the interviewer would like to know about as the first one in the projects section.
- Keep your resume at one-page. Recruiters review hundreds, if not thousands of applicants for each job opening.
- It is recommended that you list any programming languages you are well versed in at the top.
- Since you are interviewing for a specific position, avoid making your resume appear as your entire work portfolio. Instead focus on sharing the projects and skills that would be most interesting and relevant to the company you are applying to, in this case Google.
Additional Tip: Demonstrate to recruiters the impact your work had in your past employment by following the “Accomplished [X] as measured by [Y] by doing [Z]" formula.
General Formatting Pointers
- Recruiters will skim the resume before deciding to reject your application or give you a call. This process generally takes less than 10 seconds, so readability is key. Make sure your resume has a consistent layout and font per section.
- Bold your subheadings in your resume to guide the recruiter’s eyes. Subheadings include names of your projects and schools/bootcamps you attended.
If you have followed all of these tips so far and have yet to yield the results you want, consider reaching out to an expert. Interview Kickstart holds Resume Review Workshops. Find our next scheduled resume session and our full events calendar on our social media pages ;)
Google Interview Preparation - Materials & Tips:
To further prepare you for a Google technical interview, here is a list of materials and tips from a current software engineer and a candidate who received an offer from them.
- Pencil and Paper (perfectly blank, without lines) or a Whiteboard and Markers
- Create a study list of technical topics to cover
- Coding Preparatory Books
- Establish a schedule for studying/preparation. Think about it in blocks of time that you can set aside and immerse yourself without any interruptions.
- Educate yourself on the Google interview process.
- Through all of the interview preparation, don’t forget to take a step back and relax from time to time. Don’t overwork yourself.
- Self-prep can take a considerable amount of time with no guarantee of success. We suggest checking out our technical interview prep program for the best and quickest way to prepare for your dream companies.
If you want to know how to crack remote interviews, do check out our Remote Interview Guide
Technical Topics to Prepare for Google Interviews:
For this section, we compiled a list of technical topics we believe you should be well prepared for when you interview at Google from a software engineer there and their very own video on preparing for an engineering interview.
- Coding - Be familiar with at least one coding language
- Algorithms - Understand the complexity behind your algorithm is and know how to improve or change it
- Memorizing two good sorting algorithms and their Big-O
- Memorizing binary search
- Graph traversal algorithms (E.g. BFS, DFS, and short path algorithm like Dijkstra’s)
- Be well-versed in bit manipulation exercises (working with bitmaps, bit shifting)
- Data Structures - Know some of the most famous classes of NP complete problems (e.g. the salesman and the nap sack)
- E.g. Hashmap, linked list, stack, queue, and trees (n-ary, trie, heap) and their Big-O complexities
- Mathematics - Know very discrete, simple math problems like probability theory
- E.g. Powers of 2
- Recursion, backtracking, and memoization
- Operating Systems - Understand processes, threads, as well as concurrency issues, and everything related to that
- Resource allocation
- Context switching
- System Design - Used to see your ability to combine knowledge, theory and judgment in solving a real-world problem
- Gain an understanding of how the internet operates
- Understand the basics of how search works
- Object-Oriented Programming terminology (E.g. abstraction, inheritance, cohesion, coupling)
- Understand the collections and math APIs for your preferred programming language
Additional Reading: How to: Prepare for a Google Engineering Interview
Average Salaries for Tech Roles at Google
a. Software Engineers - Location: Mountain View
- Approx. $141k/yr (Base Salary) & $90-217k/yr (Base Salary Range)
- Total Compensation: Approx. $226,500/yr
- Total Compensation Range: $90-480k/year
b. Engineering Managers - Location: San Francisco Bay Area
- Approx. $205k/yr (Base Salary) & $176-240k/yr (Base Salary Range)
- Total Compensation: Approx. $405,000/yr
- Total Compensation Range: $215-562k/yr
Google Engineering Manager:
According to Glassdoor, 86 percent of the reviews from its engineering managers would recommend working at Google to a friend and 72 percent of them expressed their approval of Sundar Pichai as the CEO. With this in mind, the average rating of working at Google from engineering managers is a 4.5 out of 5 stars.
Google Software Engineer:
For Google’s software engineers, the company has an average of 4.5 out of 5 stars rating from them. 90 percent state they would recommend working at Google to a friend and 91 percent approve Sundar Pichai as the CEO.
On Glassdoor, Google has an average rating of 4.4 out of 5, along with 88 percent of its employees stating they would recommend working their to a friend and 93 percent for its approval rating of the current CEO, Sundar Pichai.
According to Comparably.com, Google holds an A+ rating in overall culture, CEO rating, and compensation. Diversity at Google is rated an A and the company ranks in the top 10 percent of other U.S. companies with over 10,000 employees.
We hope you enjoyed and found this Google interview guide to be valuable. If you are looking for structured preparation for the technical and behavioral interviews with professional guidance, check out our program by signing up for our FREE webinar to learn how you can nail your next technical interview.