This is part two of our conversation
with Zach Wilson who is a data engineer
at Airbnb. He has worked with Facebook
and Netflix before and solves so many
cool problems.
He cracked interviews in these three big
tech companies. So obviously he knows the
art of cracking
data engineering interviews, and that's
what we're going to talk about today.
We'll discuss a lot of useful
interview tips for data engineer role
that you'll find it useful. Let's get
started! Zach is pretty active on LinkedIn
with more than 100 000 followers, and I
love reading his post about data
engineering and mental health. So if you
want to learn from him please make sure
you follow him on LinkedIn. He also
started a youtube channel recently we
are going to link all of those things in
a video description below.
I feel you are probably the best person
to talk about interview because you
have cracked interviews in Netflix,
Facebook and Airbnb like top companies
right?
Yeah so
so first question
do companies like Netflix and Facebook
require you to have a computer science
degree in order for you to consider for
a data engineering interview?
Uh no definitely, not definitely not like
um like that is
like I've worked with a lot of people at
Facebook who uh and and at Netflix both
both companies that like where
they like they'll hire people who have
different different backgrounds for sure.
Like it's more about like
you're going to need to have some sort
of like relevant experience like if you
don't have a computer science degree
like having relevant experience in data
engineering is probably going to be
pretty critical. Like I think it'd be
it's going to be a little bit more
challenging to like get into Facebook or
Netflix with these companies like,
if you have zero years of experience and
don't have like a computer science
degree, you need something that's like
relevant to the role, that like will help
you break into it uh like a portfolio, or
like um some other things like Kaggle,
competition Stack overflow. You know some
people I've seen. Yeah I entered one
person who was a mechanical engineer but
every day he would
you know do some contribution on Kaggle
and he built up a good rank and based on
that he got our data
job as a data scientist. So Kaggle, Stack
overflow somewhere you should be
contributing.
Yeah definitely, definitely that's a
that's a huge one right? Um and then uh
it's like a little bit different at
Netflix right because they don't
generally hire um
like junior engineers very much. So like
they only really hire senior engineers.
So like when I got hired at Netflix, I
was like a senior data engineer so like
to work at netflix specifically you're
gonna need like several years of data
engineering experience to like get into
that job. But like um yeah for but like
you still don't necessarily need a like
a computer science degree.
And this is a theme I've seen like after
you have two to three years of
experience,
your degree doesn't matter.
Now someone is preparing for data
engineering career let's say they learn
all the skills that you talked about
right from online resources. Let's say
they go to your youtube channel learn
data engineering, they read a bunch of
books.
Now the most important thing on the
resume is the projects
so what kind of like do you have any
suggestion on the sample projects that
one can have on the resume and
where can they get ideas of such
projects and especially the datasets
for these kind of projects? For sure. I'll
I'll talk um I'll talk a little bit
about my uh the project that I had on my
resume to help me get in get into
Facebook. So like um I
uh was and I still am really fascinated
by the game magic the gathering right
which is like a card game right where
you can like tr like you like you have a
deck and you you battle another person
who has a deck and then like one of you
wins right? And uh and in that game like
I I ended up building an app and like a
database around that and like uh what I
did was like uh I I built an app that
like got a bunch of people in on it
right and then they they loaded their
decks into the app, and then with all
those decks I used those decks as a
training set to like build a recommender.
So like if you looked at a card it would
recommend what other cards you should
play with this card based on what decks
they were they showed up together in.
Okay. And that was like yeah and that was
like a project I worked on like and
obviously that was like a lot of work
and a lot of effort and probably like
more than like would be needed to break
into these companies. Like I was just but
that was this is like probably my
biggest guidance on picking a project is
you want to pick a project that you're
passionate about right? And like for me I
really liked magic the gathering right
and like the reason why I knew it was
going to be a good dataset is because
there's like 50 000 unique cards right?
So like that's already a pretty you know
pretty
big bulky thing that you can look at and
see like oh yeah this is this is a
pretty big dataset up. So like one of
the things I recommend is like
think about something that you care
about that probably has a catalog of
things right? Like maybe you like books,
maybe you like cards, maybe you like
video games maybe you like you know
whatever restaurants like whatever right,
then what you can do is you can build up
that catalog of things right from the
internet. Like you might get lucky and
there's just like some beautiful csv
file on the internet you can download,
probably not but maybe right and then if
there isn't
there's probably a website almost
guarantee there's a website to get the
catalog of things and then uh to get to
build up that catalog what you can do is
you build a scraper right and just
scrape it from the internet and then and
then you have your dataset and then you
can do your data engineer data sciency
stuff on it and like if you can show the
scraper and you can show that like
you're like, hey I built this and there
was a nice there was no dataset for it
that's even better than like saying oh
hey I downloaded the irises
data set from Kaggle and I ran the
Scikit-learn on it right and just did
the basic stuff right? That's what
everyone's done right? Yeah so titanic
and iris is like you should not have
that on your resume because everybody.
Yeah Yeah
Yeah it's like saying I I printed hello
world on in scala, so I'm proficient in
it right?
Yeah that's for sure
cool. So that's a big one.
All right? So just to summarize what you
said like write some web scraper in
python get the data
and then build a project around your
passion. So the recommendation
recommended that you build or was it
using some some type of machine learning
or some heuristic based approach. Yes,
yeah heuristic. I was at the time I like
I mean I just graduated uh college and
like I was just like, oh I can what I did
was like I just counted the
co-occurrences right? So if it's like you
have one if you have two cards in a deck
or you have two cards and you were
comparing to see if they should be
recommended, there's going to be
some cards that uh show up together more
often than other cards and then you just
you just do that and then. But then you
have to filter right because some cards
are just extremely common and you don't
want to be like, oh yeah you're always
just recommending the super super common
cards like then there's like a filter on
the super super common cards. But then
every other everything else is just
around co-occurrences and counts right?
It was just like uh think about think of
it as like a fancy little self join and
then a group by right? That's what it was
to figure out that.
Nice, awesome.
Okay so in in these big tech companies
like how what is the structure of data
engineer interview?
Is it like multiple rounds? I I'm
assuming it's multiple rounds correct?
Yeah Yeah. You want to walk through that
whole whole yeah structure?
Yeah for sure. Um so generally speaking
uh you're gonna first get a code screen
right um and like that is gonna be like
a 45-minute code screen like to just
make sure that like you know how to code,
and that like and usually that round is
really easy. Like every time I go into
that round like especially now and I
still get those code screens oh my god
that round is easy though it was like
that like it's not that hard. Like it's
gonna they're gonna give you like Leetcode
code easy or Leetcode medium question
generally speaking in that um in that 45
minute uh interview, and then assuming
that you pass that, then you go to the
on-site interview. On-site interview uh
is generally like Facebook it was eight
hours. Like this was eight right. You know
it was well yeah yeah and then um at
Netflix it was different. At Netflix it
was uh
two
two four hour rounds. It was still eight
hours but it was broken across two days
which was way better I like that way
better. Two four hour rounds is way
better than one eight hour round
especially because like by the end of
that eight hour round it was like whoa.
But um so
generally uh like there's gonna be a
round when you get into the um interview
process and everything you're going to
have around on data modeling uh and then
which will you'll get like a business
problem and then you'll need to define
like the schemas and the tables and how
you would uh solve that business problem
from
and it's
it's vague on purpose right? So that you
so that they can understand your data
modeling expertise. That's a that's a
very uh important round.
They judge you know what kind of uh
intelligent counter questions you're
asking.
Oh yeah! Asking questions is so important
like it's really important asking
questions. Like yeah if you're not asking
questions at all and you're just like
trying to like solve the problem and
just quickly give me an answer like
that's generally a bad sign. People who
do that strategy generally don't get
hired okay? And um uh
so that's around another round is around
uh like architecture like and like uh
and like
software architecture and distributed
systems and stuff like that and
understanding like how like you like
know like maybe the internals of spark,
or the internals of like different
databases maybe like cassandra or like
uh hive or whatever. Like it's a it's
another round that's very um oriented
around like more it's more technical
right and like more technical focus than
less data focused, that's like another
kind of architecture round. Then there's
going to be like a coding round there's
uh the coding round is in the in that
coding round's gonna be more involved
right? You're probably gonna get like one
usually it's like two like like medium
like Leetcode medium questions. I've
never gotten a Leetcode hard question
like ever as a data engineer because
like um I I don't think even software
engineers generally get hard questions
because like that's just messed up. Like
it's very hard to answer that in 45
minutes on the spot you know. Yeah.
So
there's like a there's like a you know
coding round that's another round. Uh
there's like a behavioral round that's
another like important round to talk
about just like okay like give me a time
that you gave feedback, give me a time
that you did this or that right and that
like you kind of uh
talk about like how you would behave in
certain circumstances.
And then there's another round around uh
uh like projects right? Talking about uh
project deep dive right and that like
what what what's a project you worked on
in the past that like you delivered
value in or you know things like that.
That's like a
there's that round and then there's a
round on like a sequel, I think that yeah
that that that's all the rounds. It's
like five or six right? It's yeah um I I
don't know that that was like five years
ago though, so like like Facebook might
have changed by now. But like that's
that's how it was when I interviewed
back then.
Cool
and I think you'd already discussed a
little bit about data structures and
algorithms but you don't know uh
you want to discuss that piece one more
time like. Yeah be sure, for sure. So like
a couple things about uh and I'm I'm
trying to talk more about coding
interview uh guidance, I think that's
more than just like these are the things
you should learn. A couple things about
coding interviews like one is that like
remember that you are interviewing with
someone right and that like that person
is there to work with you on stuff right
and like if you get a hint or two, you're
not gonna that doesn't mean
like you're not gonna you don't lose
right? Like like so like if you're stuck
in a point,
start asking questions, start trying to
clarify things, start to try to work
around the problem and understand like
what you need to do differently and like
what is like why you're stuck right and
like communicate right because like
they're looking for more than like just
did you solve the problem. It was like
did you solve the problem, do they
communicate well, like how what what do
they do when like they
they get stuck on a problem, like all
these different things are important to
also consider right when you're
interviewing for a role. It's not just
like okay I solved my two Leetcode
mediums, therefore I got the job it's not
like
right, it's not like that right?
And so yeah um I think
that's a big thing. Another thing to
remember is to just like breathe and
don't put too much pressure on yourself.
Like I've also been on the other side
right, where I've done I've been the
interviewer a lot right? And a lot of
times I can tell there's a lot of people
who are in those situations that they
just they put way too much pressure on
themselves to like do those problems, and
then it causes them so much anxiety and
then they can't think and that's like
being more
you know entering with a more relaxed
mindset, being more like mindful about
like how your thoughts are processing,
and like how you're like how you're
pressuring yourself maybe, and being
aware of these things like it can help
you just be in a better state
emotionally to answer the questions.
And you know if you're nervous or
something something like you're living a
bad sign, that when you join that company
and if you are working under a very high
pressure project, you will behave the
same way. So it's just better to keep
your calm you know. The more calmer you
are, it's gonna help you.
Now are there like few so Leetcode
competitive coding questions are okay,
but other than that in terms of design
questions and data modeling question, do
you have one or two specific question in
mind that you want to discuss?
Yeah sure sure. Let's yeah let's talk
about something like that. So like for
example like uh
there there was uh
for like a data modeling question right?
So
say we like needed to like so at
Facebook a big one was around like the
friend graph right, and understanding
like okay how would you model like okay
so if you have this this dataset of
like this person sent this friend
request to this person right, and then uh
and then then another row later says
like okay this person accepted or
declined and stuff like that right, and
so that's the like upstream dataset
right?
And then a big thing that it tries to do
then is like okay determine like
the right data model to take from taking
that like raw data into
seeing like
okay how many friends does each user
have right? That's a big thing right and
and being able to ask questions like how
many friends does each user have? Like
and uh and kind of understanding like
okay what about like
other dimensions all right? Like what
what country is accepting the most
friend requests? What country has the
best accept rate right and um asking
questions around those those are kind of
like the that's kind of like the
the setting right, that's the setup for
the question right? And then
understanding like okay we can take this
and then we can build like a dimension
table at like the user level right and
we can say like okay this user sent this
many requests, accepted this many
requests, and declined this many requests
right? And then there's like that
dimension table that you that you want
to figure out right? And then you
understanding that dimension table and
then how to aggregate it to build like
an aggregation table that can explain
like more of the uh like the country
level things right, and the other
dimensions that like are a little bit
higher level than like a user level
right? And so being able to go through
that process is like very important
right? And I think that that is uh
um
that's kind of like the high level uh
way of like doing data modeling for sure.
That's like uh and coming up
understanding like how to get to your
dimension tables, your fact tables and
your, ag tables
that part is critical and that's what
they're really looking for there is uh
being able to do that.
Perfect! All right! Now the last question
uh there is a website called levels.fyi
where you can go and
get some idea
about the salaries of data engineers. But
yeah but what are your thoughts like in
terms of junior and senior data engineer,
like how much on ever they make in these
big companies?
In the big companies, that's a good one. I
mean uh so
generally like I think it's important to
differentiate like salary and total
compensation, but like uh so like total
compensation wise like a junior data
engineer uh is gonna make like probably
like 250 to 300k like 250, 300k somewhere
in that range which is uh yeah um.
And then uh a senior engineer is
probably gonna be closer to like 400
like 350 400 like uh total trump all
right, which is it depends on the company
too right because like some companies
like um
like Netflix for example like their
compensation is very different from
Airbnb and Facebook. Airbnb and
Facebook's compensation like structure
is very very similar and then Facebook
Netflix is very different right? Who's
that netflix right they just pay all
cash right and they like they also say
that, oh we're gonna pay you what's
called your top of personal market which
is like the most essentially they're
like we'll pay you the most money that
you can find in the market right? That's
like what their philosophy is right?
And um uh and so that's uh it's pretty
interesting how that like kind of uh
works out right? So senior engineers at
Netflix make a lot more money right? So I
think that Netflix like it's like like
like 500k is like and it's all cash! It's
500k salary wow right! Not not like
there's no uh like there's not like very
much like a stock element in in their um
compensation package. Whereas at Facebook
and Airbnb
uh the stock element is pretty
significant.
So the Netflix basically is predictable.
You're just making 500, you're making 500.
But if you're working in Facebook or
Airbnb and if the stock prices shoot up,
your promise 400 but you might end up
making 600.
Yep or the other way around too. Can you
cut by yet.
Well the way Fed has been printing money
since last few years, I I don't think it
will go the other way. Yeah. I just feel
like stock market just keeps on going
going and going up you know. It does it's
weird.
And by the way we have a lot of
international viewers watching this
video. So whatever numbers we discussed are
in U.S. dollars so when we said 300 and
400 those are like 400 000 U.S. dollar per
year.
All right Zach! It was an amazing
conversation. I feel like I myself
learned a lot of things, and our viewers
are also going to
learn a lot of useful tips. Especially
the interview tips and we are going to
provide a link of Zach's
awesome
LinkedIn and
youtube uh youtube channels links in the
video description below. So make sure
you follow him. I think he has great
plans for
coming year
and Zach thank you very much uh for
having this conversation! For sure this
has been awesome. Thank you for having me
on the show!
Thank you! Bye!
[Music]