[go: up one dir, main page]

0% found this document useful (0 votes)
277 views5 pages

Data Engineer Interview Guide

Uploaded by

pawan yadav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
277 views5 pages

Data Engineer Interview Guide

Uploaded by

pawan yadav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Data Engineer

Virtual Interview Prep Guide


Please use this guide as a resource to aid to help you prepare for your upcoming technical virtual
interview(s). As a reminder, all of the information in this document is confidential. Please do not share.

In this document you will find everything you need to prepare, practice and feel confident for your
upcoming interview(s). Let your Recruiter know if you have any questions or concerns not addressed in
this document.

What you can expect: Day-of Logistics

Google maintains a casual office environment. Please dress comfortably, a suit is not required, nor
expected. We recommend dressing business casual.
The meeting topics span across various areas that will be defined throughout this document. There
may be scheduled breaks but if you need additional time in between interviews, please alert your
Recruiting Coordinator.

Please note: There will be one Hangout link for you to use. Interviewers will join virtually at their
designated time. For the technical and coding portions of your interviews, you will be expected to
utilize a shared virtual interview platform, which your Recruiting Coordinator will provide in your
confirmation email. Please let us know in advance if you require other accommodations.

What we look for: 4 Key Attributes

Throughout your interviews, you will be asked a variety of questions that are designed to assess your
strengths in the core attributes listed below.

General Cognitive Role-Related


Leadership Googleyness
Ability Knowledge

We ask open-ended Be prepared to discuss how We’re interested in how Share how you work
questions to learn how you have used your strengths combine individually and on a
you approach and solve communication and with your experience to team, how you help
problems. And there’s no decision-making skills to drive impact. We don’t others, how you navigate
one right answer—your mobilize others. This might just look for how you can ambiguity, and how you
ability to explain your be by stepping up to a contribute today, but how push yourself to grow
thought process and leadership role at work or you can grow into outside of your comfort
how you use data to with an organization or by different roles, including zone.
inform decisions is helping a team succeed ones that haven’t even
what’s most important. when you weren’t officially been invented yet.
the leader.
Non-Technical Question Topics

Project Management Data Engineers support


client projects from pre-Sales through
Client & Stakeholder Management As a Data
ongoing post-Sales support. Think of
Engineer, you will act as an advocate for your
scenarios that demonstrate your ability to
external clients and work with internal
manage multiple, maybe conflicting
Google teams like sales, product,
deadlines. Your communication skills need to
development, etc. Think about...
be strong and to the point.
- Times you had to influence without direct
authority. Why were you successful?
Google Product Knowledge While it isn’t
- Experiences working with cross-functional necessary to be knowledgeable in one
partners. How did you foster collaboration? specific product area, we recommend
- Examples from when you went above and familiarizing yourself with what is going on at
beyond to meet client expectations. Google right now and what our most popular
products in the market are. Why are they
important - to you, to individuals, to business
consumers?

Be prepared for a mix of behavioral and hypothetical questions

Behavioral questions look at how you've handled a specific challenge in the past to assess if you’ll
be a good match for the role.

Ex: Give me an example of how you utilized your analytical ability to solve a problem at work. What
was the result?

Hypothetical questions are designed to uncover how you would think or handle a specific challenge
or situation that you have not yet encountered.

Ex: Suppose a colleague comes to you with [abc business problem]. Walk me through the steps that
you would take in order to [xyz]. How would you approach this task? What types of data and metrics
might you want to gather before determining your strategy? How would you evaluate whether your
approach was successful?
Technical Problem Solving (Troubleshooting)
You will be given scenarios, again using a combination of behavioral and hypothetical questions
where the interviewers want to see the steps you take to solve a problem. This will give them a good
idea of how you would approach solving problems for clients. Interviewers are looking for a logical
and structured approach to problem solving through database troubleshooting, 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. A big part is finding out what the actual problem
is and breaking it down into specifics. Check out Life in App Engine Production for a troubleshooting
example.

Databases / SQL

You will be probed about your knowledge of SQL, specifically around complex SQL query writing,
syntax and commands, as well as other database knowledge/languages, big data, and data
analysis. Some additional interview areas may focus on SQL string functions, table schemas, and
database indexes. This resource will help you further prepare for the Databases / SQL interview.

Technical Coding Interview

The coding interview will be conducted by a Google Software Engineer. This is a purely technical
evaluation. You will be able to code in the language you feel most comfortable with, preferably Java,
C++ or Python, but Javascript and other languages are also acceptable. Please let your recruiter
know your preferred language.

You will write code, optimize it and test it. You should be able to identify bugs and fix them along the
way. Try to cover corner cases and edge cases (boundary cases are important). By the end of the
interview period, you are expected to have a working solution. Remember to share your thought
process with the engineers throughout the interview. They want to know the solution, as well as how
you arrived there...think out loud. When writing your test cases, be thorough. Don't limit yourself by
writing just a few test cases, write as many as you can. Ask clarifying questions and take advantage
of hints the interviewer gives you during the interview.

The Interviewer will be looking for evidence of the following:

● General Coding Ability: How well you know your chosen language, how quickly you code and
how well your code works. You will be expected to have knowledge of APIs, Object Oriented
Design, know how to test your code, as well as come up with corner cases and edge cases
for code.

● Computer Science Principles: Data structures / algorithms and how they can be used in your
solutions. Also be prepared to discuss algorithms in depth - how complex is an algorithm,
how to optimize it.

● Analytical Skills: Analysis of your own code (can you spot a bug, can you tell the interviewer
what is the most optimal solution?) and analysis of the question (do you understand it, do
you ask clarifying questions).

● Problem Solving: Think out loud! Tell the interviewer what you are doing and the steps you
are taking to solve the problem.
Be familiar with…
- Sorting, searching, divide-and-conquer, dynamic - Common sorting functions; what kind of input
programming/memoization or algorithms linked data they’re efficient on. Think about what
to a specific data structure. efficiency means in terms of runtime/space
used. (ie. In exceptional cases insertion-sort or
- Big-O notations (e.g. run time complexity). We
radix-sort are better than generic QuickSort
recommend discussing or outlining the
/MergeSort/HeapSort. Don't do bubble-sort. You
algorithm you have in mind before writing code.
should know the details of at least one n*log(n)
- Algorithm Complexity, Design, & Analysis: It's sorting algorithm, preferably two (ie. quicksort &
fairly critical that you understand big-O merge sort).
complexity analysis. Again run some practice
- Trees: Know about trees; basic tree
problems to get this down in application.
construction, traversal and manipulation
- Recursion and using it to find more elegant algorithms. Familiarize yourself with binary
solutions to problems that can be solved trees, n-ary trees, and trie-trees. Be familiar with
iteratively. at least one type of balanced binary tree,
whether it's a red/black tree, a splay tree or an
- Know how hashtables work. Be able to AVL tree, and know how it's implemented.
implement one using only arrays in your favorite Understand tree traversal algorithms: BFS and
language, in about the space of one interview. DFS, and know the difference between inorder,
postorder and preorder.

Online resources Top Coder “Arena” widget, specifically practice


CodingBat (Python & Java) - let the rooms in the first/second division
games begin! Project Euler
TopCoder Algorithm Tutorials
Google Technical Development Guide

Further reading
Cracking the Coding Interview
Programming Interviews Exposed: Secrets to Landing Your Next Job
Programming Pearls

Linux / Unix
TSCs must be comfortable working in a Linux environment (as a user, not as an admin) and will be
expected to have a good working knowledge of what’s happening under the hood. Understand
kernels, regular expressions, libraries, system calls, memory management, permissions, file systems,
user-level Linux commands, client-server protocols and the shell. Check out these online books: The
Linux Programming Interface, Advanced Programming in the Unix Environment and The Linux
Command Line.

Operating Systems: Know about processes, threads and concurrency issues. Be familiar with locks,
mutexes, semaphores and monitors and how they work. Know about deadlock and livelock and how
to avoid them. Have knowledge of what resources a process needs, a thread needs as well as how
context switching works and how it's initiated by the operating system and underlying hardware.
Know the fundamentals of "modern" concurrency constructs.
Additional Resources

About our company Google Products & Services


Life at Google YouTube Channel Google Ads
Google Marketing Platform
The Google Story
Youtube
Google’s Mission and Values
Google Products
How we Hire at Google (be sure to
leverage the various links that include
additional tips on these pages)

gTech also has a Hiring Network which you can utilize at any stage of the hiring process. This
network consists of Googlers in the gTech organization who have volunteered to share more about
the org, life at Google, and answer general questions about the interview process. If you're
interested in scheduling an informal chat, please sign up for a slot, giving the Hiring Network at
least 48 hours advance notice. *Please note: this is not a mock interview*.

Best Practices | Final Reminders

Talk through your thought process about the


questions you are asked. In all of Google's
interviews, our engineers are evaluating not
only your technical abilities but also how you
approach problems and how you try to solve Think about ways to improve the solution you'll
them. Incorporate how you would use data to present. In many cases, the first answer that
analyze the effectiveness of your solution and springs to mind isn't the most elegant solution
ways to measure success in the future. and may need some refining. It's definitely
worthwhile to talk about your initial thoughts to
Ask clarifying questions if you do not a question, but jumping immediately into
understand the problem or need more presenting a brute force solution will be
information. Many of the questions asked in received less well than taking time to compose
Google interviews are deliberately a more efficient solution. Always try to find the
underspecified because our interviewers want most optimal solution that aligns with your
to hear how you would troubleshoot and ask allotted time.
questions to a client. In particular, they are
looking to see which areas leap to your mind as
the most important piece of the technological
puzzle you've been presented.

Good Luck!

You might also like