My Data Engineering Interview experience in Bay Area
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 certain 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 begin. 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 excellent at actually doing the questions)
Leet code premium each week day for about 30 min. I would do python one day and SQL the following. At initial 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 realize:
For SQL I definitely needed to realize 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 questioned about space complexity. Disney + also expected me to realize the complexity of the python .sort()
For python it was a ton of list and dictionary based questions. Be certain you can do most Leetcode easy in 5-10 min and medium in 30 min. I skipped a lot of binary tree related problems, 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:
• Apple (Data Eng) - Rejected after onsite
o First call with recruiter: Normal earn sure you are a reasonable human, non technical.
o Tech screening: SQL and python problems on coder pad. SQL medium, Python Easy. This was super fast paced. I lost some time since I didn’t see I ended. to cast a value to decimal(10,2) before adding it to a different 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 bunch of info on these interview son dd 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 response 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 org, 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, employed with data scientists, leadership/management. One Leetcode easy whiteboard problem 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, everybody was super friendly and I felt the interview fairly assessed my abilities.
They ended up going with a different candidate with more management YOE.
• PitchBook (Data Eng Manager) - Rejected after manager call
o Typical recruiter call – non technical.
o Manager call: learned about company, talked regarding 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 job.
• 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 lengthy 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 job.
• Data Bricks - Rejected after tech screen
o Typical recruiter call – non technical.
o Manager call with VP: Standard manager call, learned about firm, 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 regarding 10 hours of work, learned a lot doing so and enjoyed the challenge.
o Tech Screen 1: Mainly questioned 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 problems, 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 regarding comp. Ive usually been of the mind to put out a number if I have the research to back it up (dd and levels.fyi). I gave them a number, they said they would see if they could available 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 hope 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 regarding 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 regarding 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 crew. All were super friendly.
• Lyell Immunopharma - Rejected after Tech Screen
o Manager call with VP: Standard manager call, learned regarding 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 problem and was totally stumped on the other. The problems were both available on Leetcode had I practiced more I may have made it. Interview was super helpful in walking me through it even although 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 background and what I am looking for in a new role.
o Tech Screen: Python coderpad, leetcode medium, but on the straightforward 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 a different tech screen, leetcode medium python question. I did fine here.
1 interview was more object oriented, create a typical 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/ a different leetcode medium question. I did not do well on this one, partly 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 regarding 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 shift to onsite, else do python. It went well. Nothing crazy, you just need to realize SQL well. See above notes on what I needed to realize in general.
o Onsite:
Python leetcode medium problem, 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 difficult to see how far people could get.
SQL problems, mainly Kimball datawarehouse related
Lunch with the data eng and data science group. All were super friendly.
Behavioral interviews with data science managers and data analyst managers. All totally reasonable questions, both were extremely nice.