Google Interview Prep Guide
Strategic Cloud Engineer
What’s a Strategic Cloud Engineer (SCE)?
Strategic Cloud Engineers work with some of Google’s biggest clients to develop their cloud
strategies from inception to production. They solve complex technical problems which are
critical to our clients’ businesses such as distributed systems development and cloud native
transformation. They work with Product Management and Product Engineering to build and
consistently drive excellence in our products. As part of the Google Cloud team in this rapidly
growing area, you will help shape the future of businesses of all sizes and use technology to
connect with customers, employees and partners.
Why Google? Impact.
Google is and always will be an engineering company. We hire people with a broad set of
technical skills who are ready to tackle some of technology's greatest challenges and make an
impact on millions, if not billions, of users. At Google, engineers not only revolutionize search,
they routinely work on massive scalability and storage solutions, large-scale applications and
develop entirely new platforms around the world. From AdWords to Chrome, Android to
YouTube, Cloud to Maps, Google engineers are changing the world one technological
achievement after another.
General Interview Tips
Explain - We want to understand how you think, so explain your thought process and decision
making throughout the interview. Remember we’re not only evaluating your technical ability,
but also how you approach problems and try to solve them. Explicitly state and check
assumptions with your interviewer to ensure they are reasonable.
Clarify - Many of the questions will be deliberately open-ended to provide insight into what
categories and information you value within the technological puzzle. We’re looking to see
how you engage with the problem and your primary method for solving it. Be sure to talk
through your thought process and feel free to ask specific questions if you need clarification.
Improve - Think about ways to improve the solution you are presenting, focusing on building
for scale and change as it grows. It’s worthwhile to think out loud about your initial thoughts to
a question. In many cases, your first answer may need some refining and further explanation.
If necessary, start with the brute force solution and improve on it — just let the interviewer
know that's what you're doing and why.
Practice - You won’t have access to an IDE or compiler during the interview so practice
writing code on paper or a whiteboard. Be sure to test your code and ensure it’s easily
readable without bugs. Don’t stress about small syntactical errors like which substring to use
for a given method (e.g. start, end or start, length) — just pick one and let your interviewer
know.
The Technical Phone Interviews
Your phone interview will cover data structures and algorithms. Be prepared to write around
20-30 lines of code in your strongest language. Approach all scripting as a coding exercise —
this should be clean, rich, robust code.
1. You will be asked an open ended question. Ask clarifying questions, devise
requirements.
2. You will be asked to explain it in an algorithm.
3. Convert it to a workable code. (Hint: Don't worry about getting it perfect because time
is limited. Write what comes but then refine it later. Also make sure you consider
corner cases and edge cases, production ready.)
careers.google.com
4. Optimize the code, follow it with test cases and find any bugs.
The Troubleshooting Interviews
Troubleshooting - Interviewers are looking for a logical and structured approach to problem
solving through distributed systems, network and web scenarios. Make sure you understand
the questions and ask appropriate follow-up questions to the interviewer if you need
clarification.
Unix / Linux - Be comfortable working in a Linux Environment, and you’ll be expected to have
a good working knowledge of user-level Linux commands, shell scripting, regular expressions
etc. Check out these online books: The Art of Unix Programming and Advanced Programming
in the Unix Environment.
Web Technology - Know your network protocols and how the browser works, the HTTP
protocol, cookies, general web troubleshooting (ability to diagnose issues step by step),
Javascript and HTML. Brush up on HTTP Protocol basics: Part I, Part II
Networking - Show off your depth of knowledge and understanding of network theory, like
different protocols (TCP/IP, UDP, ICMP, etc), MAC addresses, IP packets, DNS, OSI layers, and
load balancing. Check out Computer Networking: A Top-Down Approach.
System Design - Here you will combine knowledge, theory, experience and judgement
toward solving a real-world engineering problem. Sample topics include distributed systems,
designing a system under certain constraints, scalability, elasticity, robustness and tradeoffs.
Make sure you also have an understanding of how the internet works and be familiar with the
various pieces (routers, domain name servers, load balancers, firewalls, etc.).
careers.google.com
The Coding & Algorithm Interviews
Coding - You should know at least one programming language really well, preferably C++,
Java, Python, Go or C. You will be expected to know API’s, Object Oriented Design and
Programming, how to test your code, as well as come up with corner cases and edge cases
for code. Note that we focus on conceptual understanding rather than memorization.
Algorithms - Approach the problem from both bottom-up and top-down algorithms. Know
Big-O notations (e.g. run time). Algorithms that are used to solve Google problems include
sorting (plus searching and binary search), greediness, dynamic programming/ memorization,
divide-and-conquer, and algorithms linked to a specific data structure.
Data Structures - You should study up on as many data structures as possible. Data
structures most frequently used are arrays, linked lists, stacks, queues, hash-sets, hash-maps,
hash-tables, dictionary, trees and binary trees. You should know the data structure inside out,
and what algorithms tend to go along with each data structure.
careers.google.com
Resources
Books About Google
Cracking the Coding Interview Company - Google
Gayle Laakmann McDowell The Google story
Programming Interviews Exposed: Secrets to Landing Life @ Google
Your Next Job
John Mongan, Eric Giguere, Noah Suojanen, Noah Google Developers
Kindler Open Source Projects
Programming Pearls Github: Google Style Guide
Jon Bentley
Introduction to Algorithms
Thomas Cormen, Charles Leiserson, Ronald
Rivest, Clifford Stein
Interview Prep Google Publications
How we hire The Google File System
Interviewing @ Google Bigtable
Candidate Coaching Session: Tech Interviewing MapReduce
CodeJam: Practice & Learn Google Spanner
Technical Development Guide Google Chubby
careers.google.com