My Data Engineering Interview experience in Bay Area

GoPro / Data DHey31
5d 12 Comments

Me: 31, Bay Area, MBA from unranked school, BS in Management: 10 YOE although only 7 YOE Data Engineering.

TC Prior to Job Search: 210 (160 base, 24k annual bonus, 25k annual RSU)
TC After Job Search: 293 (210 base, 21k bonus, 62k in annual options value). Company values annual options at 125k a year, not sure I believe that so cutting it in half to 75k.

How I practiced:
Python: I did all the questions here https://codingbat.com/python to start. And
also took this course https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513 + read Cracking the Coding Interview (although I was not great at actually doing the questions)

Leet code premium every week day for about 30 min. I would do python one day and SQL the next. At first I was really bad at even the easy python, so I would just read other peoples answers to understand and come back later.

What I needed to know:
For SQL I definitely needed to know how to do grouping, aggregation, use HAVING, windows, do a SUM on a CASE Statement, and do inner/left/self joins. Be comfortable with using sub queries/CTEs.

Big O Notation. You need to know how to calculate time complexity, and one interview asked about space complexity. Disney + also expected me to know the complexity of the python .sort()

For python it was a lot of list and dictionary based questions. Be sure you can do most Leetcode easy in 5-10 min and medium in 30 min. I skipped a lot of binary tree related questions, and linked list only came up once (Disney +)

Kimball Database design, this came up on 2-3 interviews. I read “Agile Data Warehouse Design” and “The Complete Reference Star Schema”

Companies I interviewed with:
• Facebook (Data Eng) - Rejected after onsite
o First call with recruiter: Normal make sure you are a reasonable human, non technical.
o Tech screening: SQL and python questions on coder pad. SQL medium, Python Easy. This was super fast paced. I lost some time because I didn’t see I ended. to cast a value to decimal(10,2) before adding it to another value
o Onsite:
 30 min behavioral interview
 An awesome lunch with a friendly Data Engineer
 Other interviews were on the whiteboard, SQL, Python and database design (Kimball method). There is a lot of info on these interview son blind and glassdoor, it was all fairly accurate. The one thing I found odd is the speed at which answers were expected. I should have talked out loud more, but I felt a number of interviewers pushed to hints while I was still thinking. It didn’t seem they wanted an optimal answer at all, just a brute force one (Ie multiple sub queries instead of building a better single query). Python was a bit tough as it was more focused on processing an array, or connecting two dictionaries rather than an algorithm.

• Glassdoor(Data Eng Manager) - Rejected after onsite
o Typical recruiter call – non technical.
o Manager call: learned about company, talked about why I am interested in company, my experience and what I am looking for in a new role.
o Onsite: All day onsite, database schema design, working with data scientists, leadership/management. One Leetcode easy whiteboard question in python + talked with that interviewer about challenges in Data Eng such as GDPR and how they might be solved. Onsite was tough but laid back, everyone was super friendly and I felt the interview fairly assessed my abilities.
 They ended up going with another candidate with more management YOE.

• Crunchbase (Data Eng Manager) - Rejected after manager call
o Typical recruiter call – non technical.
o Manager call: learned about company, talked about why I am interested in company, my experience and what I am looking for in a new role.
 Received notification after call that they were hiring within for the role.

• One Medical - Rejected after Tech Screen
o Typical recruiter call – non technical.
o Tech screen: Was given a python class in coderpad that was quite messy, had to refactor and improve it. I took too long understanding the if/then logic and finished with 1 min to spare. My solution must not have been optimal as I was rejected. I felt the challenge was fair and realistic for the role.

• Data Bricks - Rejected after tech screen
o Typical recruiter call – non technical.
o Manager call with VP: Standard manager call, learned about company, talked about why I am interested in company, my experience and what I am looking for in a new role.
o Coding Challenge: Very realistic coding challenge for a Spar Engineer. Took me about 10 hours of work, learned a lot doing so and enjoyed the challenge.
o Tech Screen 1: Mainly asked specific questions about spark, things like “why would you use coalesce vs repartition”. I wish I had read “The Definitive Guide to Spark” First. I did not do well.
o Tech Screen 2: Almost the same as above, specific spark questions, I did even worse than Tech Screen 1.

• Clarity Insights - Rejected after recruiter screen
o Typical recruiter call – non technical In this screen we talked about comp. Ive always been of the mind to put out a number if I have the research to back it up (blind and levels.fyi). I gave them a number, they said they would see if they could open up a principal consultant role to meet my comp, they could not. There is a chance I could have interviewed, done awesome and then given my number but given the market in SF is so hot I didn’t want to waste time when other companies heard the same number and said, we can do that.

• BuildingConnected - Made an Offer
o Manager call with VP: Standard manager call, learned about company, talked about why I am interested in company, my experience and what I am looking for in a new role.
o Coding Challenge: Very realistic coding challenge for a Data Engineer. Took me about 5 hours of work, learned a lot doing so and enjoyed the challenge.
 Onsite: This was one of the best onsite I have ever had. Started the day reviewing my coding challenges and talking through my decisions, then spent the second half of the day building out the coding challenge into something production ready. Lunch with the data eng and data science team. All were super friendly.

• Lyell Immunopharma - Rejected after Tech Screen
o Manager call with VP: Standard manager call, learned about company, talked about why I am interested in company, my experience and what I am looking for in a new role.
o Tech Screen: Leetcode Medium. I made it through one question and was totally stumped on the other. The questions were both available on Leetcode had I practiced more I may have made it. Interview was super helpful in walking me through it even though it was apparent I wouldn’t be moving forward, good learning experience.

• Disney - Rejected after onsite
o Manager call with VP: Standard manager call, learned about company, talked about why I am interested in company, my experience and what I am looking for in a new role.
o Tech Screen: Python coderpad, leetcode medium, but on the easy side. Big interest in Big O Notation
o Onsite: This was the most challenging technical onsite I had. Almost all were python whiteboarding:
 1 interview discussed software development, things like deploying, testing etc. I did fine here.
 1 interview was basically another tech screen, leetcode medium python question. I did fine here.
 1 interview was more object oriented, create a common data structure in python, discuss how to use/improve it. I did not do well here.
 This was the oddest thing, lunch was a 45 minute break, where I was left to fend for myself, in a WeWork where I did not have badge access to get back in. I made a cup of coffee and ate the snacks I brought.
 Last interview was management/ another leetcode medium question. I did not do well on this one, partially because it was a harder medium, but mainly I was exhausted at this point.
o I did not get an offer.

• GoodRX - Made an Offer
o Manager call with VP: Standard manager call, learned about company, talked about why I am interested in company, my experience and what I am looking for in a new role.
o Tech Screen: Because I was on a time crunch we did only a SQL tech screen with the agreement that if it went well we would move to onsite, else do python. It went well. Nothing crazy, you just need to know SQL well. See above notes on what I needed to know in general.
o Onsite:
 Python leetcode medium question, started off simple and made the requirements harder as time went on. I thought I was struggling but apparently this was OK as they made the question hard to see how far people could get.
 SQL questions, mainly Kimball datawarehouse related
 Lunch with the data eng and data science team. All were super friendly.
 Behavioral interviews with data science managers and data analyst managers. All totally reasonable questions, both were very nice.

comments

Want to comment? LOG IN or SIGN UP
TOP 12 Comments
  • Affirm old_
    How many LC easies and mediums did you do? How did you order them?
    5d 5
    • GoPro / Data DHey31
      OP
      Im not sure on the exact count, but I basically did leet code 5 times a week for 4 months. I probably did 75 easy python and 25 medium python. But I would keep re-doing a problem until I really understood it. Also as I had interviews, I would re-practice the questions they asked on my own before interviewing with other companies. If I went back and re-interviewed with the first company now, I imagine it would be much easier.

      I sorted by frequency and skipped questions related to Binary Search Tree and Linked List (although this is probably why I did poorly at Disney +). Also if I was tired I would sort by acceptance and basically do a few easy questions to get in the zone, other days I would grind over a single medium for 30+ min.
      5d
    • Affirm old_
      Great insight. Thanks. Why did you skip binary search tree and linked list questions, out of curiosity?
      5d
    • Affirm old_
      How did you know you’d gotten to the point of really understanding a question?
      5d
    • GoPro / Data DHey31
      OP
      I skipped them because from what I read on blind / my experience with the first few interviews they didn't really come up in data engineering interviews + I have a hard time understanding them. I am still doing Leetcode every day and have added them into the mix because I do think they are important, I just wanted to optimize for the questions I felt would be most likely in an interview.

      I knew I really understood a question when 1) I could think of a way to solve it that was different than the solution I learned 2) I would bookmark the question and come back to it a few days later, If I could solve it without looking at the answers I felt good about moving forward.
      5d
    • Affirm old_
      The bookmarking/ revisiting technique sounds key — thanks for sharing.
      5d
  • New lmr
    How much time do you spend each day preparing? Are you working full time?
    4d 1
    • GoPro / Data DHey31
      OP
      I was/ am working full time. I spent about 2 hours a day, my commute is 1 hour each way so I have always read each direction and I do leetcode over lunch.
      4d
  • Aktana sgFd37
    Wow! That’s very detailed notes. So did you end up accepting the offer or are you still interviewing? All the Best to you.
    5d 2
    • GoPro / Data DHey31
      OP
      I did accept an offer, thank you!
      5d
    • Aktana sgFd37
      Congrats
      4d
  • eHealth / Product
    hltyjunkie

    eHealth Product

    PRE
    The Walt Disney Company, Starbucks, CVS Pharmacy, Walgreens
    hltyjunkiemore
    That’s great details.. thanks for motivating me
    5d 0

Salary
Comparison

    Real time salary information from verified employees