Two weeks before the pandemic started in 2020, I decided to quit my job at Netflix to travel the world. The world said please don’t travel.
I pivoted and tried to make it as a professional video game player in Call of Duty: Warzone. After 8+ hours a day of grinding for nine months, my girlfriend broke up with me and said I needed to make something of my life.
This was honestly the wake up call I needed to make something of my life. In November 2020, I started applying to big tech companies companies. I landed interviews at Meta, Google, and Airbnb which I took in late-December 2020.
In this article, I will go over:
What was my preparation strategy for each interview round:
Data structures and algorithms
Data modeling
Behavioral
Data architecture
How I got multiple offers and what they ended up being
How I negotiated my offer with Airbnb to get a bit more money
My preparation strategy
Personally, I have the most stress in the data structures round because it’s the only round where there is a binary correct/incorrect. The other rounds I can ask enough clarifying questions to usually get to the right answer but you’re penalized much more heavily for “hints” in the data structures round.
The Data Structures and Algorithms round
I have a very detailed write up on this round here
This round seems to be a balance of preparing and feeling ready but not over-preparing and psyching yourself out.
Data engineering interviews usually are a little easier on the Leetcode side than software engineering interviews. So in order to prep, I did the Blind 75 list of leet code questions.
Really focusing on:
Array and stack-based problems like:
I avoided problems that
Focused a lot on graph traversal, breadth-first search, depth-first search, binary search and dynamic programming
These problems are usually more geared towards software engineers anyway!
Once I finished these problems by doing 2-3 per day in November and December of 2020, I felt much more confident about passing the DSA rounds that were ahead of me!
The Data Architecture round
I have a very detailed write up on this round here.
This round really has only a few things that you really need to focus on:
When picking between these two architectures make sure you’re well-versed in streaming architectures that are focused around Kafka and Flink.
The tradeoffs here are usually pretty clear:
Lambda
Strengths
Completeness and correctness
Weaknesses
Complexity of maintaining two pipelines
Kappa
Strengths
Simplicity and streaming-focused
Weaknesses
Correctness and backfill difficulties
CAP theorem
Knowing which data store to pick
Data stores are usually either ACID or BASE
ACID data stores
Focus on correctness, transactions, and consistency
Examples: Postgres
BASE data stores
Focus on partitioning (horizontal scalability) and availability (i.e. AP systems)
Examples: Cassandra
A much more detailed write up on this is here
Read/write tradeoffs of database indices
When you create an index, it makes reads faster but writes slower. Understanding this will help you a lot! A much more in depth analysis of this is here
The Data Modeling round
The data modeling round is going to focus on how to create good diagrams and schemas for efficient querying! A very detailed write up on this can be found here
The things you want to focus on here are:
Kimball vs Relational vs One Big Table (video) (article)
Relational data modeling
Strengths
Enforces correctness via Primary keys and 3rd normal form
Weaknesses
Have to do many JOINs to get to the answer you’re looking for
Kimball
Strengths
Can combined fact and dimensional data for fast analyses
Weaknesses
Correctness is dependent on upstream data
JOINs can be a bottle neck in some cases
One Big Table
Strengths
Minimizes/eliminates shuffle for analyses
Weaknesses
Very hard to change, cumbersome to enforce data quality
Complex data types are hard to query
How to build a good data flow diagram
Can you design a diagram that encapsulates the following things:
The logging of events turned into facts
The snapshot of dimensions turned into master data
The joining of dimensions and facts turned into aggregates
The aggregates turning into important business metrics
If you have these 4 things, you’ll be well on your way to passing this interview!
The Behavioral round
Not giving off brilliant jerk vibes is the number one most important thing for passing this interview. This is followed by showing that you’re easy to work with and will raise the bar for all your coworkers!
In this interview round, you need to be ready with stories for the following questions:
Give me an example of when you had a big impact at a company
For me, when I interviewed at Airbnb, I talked about the graph database I built at Netflix. The example should demonstrate:
Impact
In my example, the graph database allowed the cybersecurity teams to prioritize threats in the cloud infrastructure based on data!
Complexity / Difficulty
For staff level roles, the example you give should be complex and difficult. The graph database I built was for 10+ downstream stakeholder teams and required many rounds of feedback and persuasion. Remember, if you want a staff-level role, you need to demonstrate staff-level scope!
Give me an example of a time you were given constructive feedback and what you did
Dealing with constructive feedback is really important part of the journey! When I interviewed at Netflix, my example was:
My coworkers said my meetings were too disorganized and didn’t provide enough value
What I did to adjust to this feedback was:
Provide an agenda ahead of time
Take diligent notes and send take aways after the meeting
Talk about what the impact of the adjustments were
In this case, my coworkers perceived me as more professional and came to the meetings with more enthusiasm and energy. Allowing us to file multiple patents with Netflix!
What is the hardest part of working with you
Give an honest answer here. Not something silly like “I’m a perfectionist.” For me, the answer is, I get too emotionally involved with work and I need to step back sometimes.
Always have an answer of how to deal with the hard part of working with you. For me that is, I need feedback from my manager when my emotions are high and when I should step back.
How I got multiple offers
In November 2020, I was determined to get the most money I could from big tech. This is where it’s important to getting your interviews to line up, ideally beforehand so it’s less messy!
I had interviews set up with Google, Facebook, and Airbnb. I wanted to interview with Facebook first because I had already interviewed with them before and I felt most confident with them and I knew it would help me shake off the interview jitters.
There was a ten day stretch in December where I did all the onsite interviews at Facebook, Airbnb, and Google.
During the stressful time of doing interviews remember the following things:
Multiple interviews probably means multiple offers
Don’t let a single bad interview mess up with your confidence!
Learn as quickly as you can from these things
The Facebook interview helped me refine my impact stories from Netflix to sound more staff-level than senior-level which helped me get the higher offer from Airbnb!
Remember to have a day in between interviews. I always need at least one day to recover from an onsite interview before jumping into another one!
Prioritize sleep and remember during this difficult time that sound sleep is your super power against all the other candidates who are stressing out!
Make sure the recruiters are aware that you’re interviewing at multiple companies at the same time! They will treat you better and speed up the process for you if they are aware you’re interviewing multiple places.
In the end, I ended up getting two senior offers from Google and Facebook and one staff offer from Airbnb!
How I negotiated my offer with Airbnb to get a bit more money
Even though the Facebook and Google offers were not really competitive with the Airbnb offer. (they were more than $100k less TC). I still leveraged the fact I had competing offers.
When Airbnb came in with their offer, it was around 500k TC.
I told them three things:
Levels.fyi said the median for this role is closer to 600k
Facebook and Google roles seem interesting since they work on a different scale of data
The stock is really high because of the IPO pump and could fall
After a few back and forth, I was able to get an additional $75k and accepted $575k offer from Airbnb.
Some tips in this area:
Never be the first person to say a number!
Never accept the first offer a company gives you. They almost always try to get you to accept the low end of the salary band for the role
Airbnb couldn’t budge on base salary but they were able to budge on equity.
Remember, negotiating BEFORE taking a role is much easier than negotiating once you’re in the role. You lose a lot of the leverage you have once you accept an offer!
I hope this helps you in landing your role in 2025! Black friday sales are currently going on for DataExpert.io boot camps and subscription products until December 3rd! You can check it out here: DataExpert.io