Lyft · Primly Community

Lyft data engineer interview, pipelines and SQL, what they actually test in 2026

de_derek (Primly starter) · 6 replies

Went through the Lyft data engineering interview in January. I'm a senior DE (7 years) and was interviewing for a senior IC role. Here's the actual structure and what they cared about.

Loop structure: SQL/data modeling round (1 hour) Pipeline design / system design round (1 hour) Coding round (Python, 45 min) Behavioral (45 min) HM chat

SQL and data modeling: This was the most intensive round. Two parts: first a SQL problem, then a data modeling question.

SQL: window functions, aggregations, and a subquery involving Lyft's core domain (rides, drivers, timestamps). The problem was: compute, for each city, the percentage of rides where the driver accepted within 10 seconds over the past 30 days, then rank cities by this metric. Sounds straightforward but the schema had some gotchas around how cancellations were recorded.

Data modeling: design a schema to power a dashboard showing driver earnings per week, broken down by ride type and market. They want to see that you know the difference between a normalized OLTP schema and what you'd actually put in a Snowflake or Redshift table for analytical queries. I sketched a fact-dimension model and they pushed on how I'd handle slowly changing dimensions for driver attributes.

Pipeline design: Given a real Lyft-adjacent scenario: a stream of GPS pings from active drivers, build a pipeline that computes ETA accuracy in near-real-time. This is classic streaming: Kafka ingestion, a stateful processing layer (they asked about Flink specifically but Spark Streaming would also work), windowing strategy, latency vs. throughput tradeoffs, and how you'd backfill if a downstream service goes down.

They were not just asking what tech you'd use. They asked what the SLA would be and how you'd know if you were missing it. Have an answer for observability: what metrics do you instrument, where does the alert fire, who gets paged.

Python coding: More of a data manipulation problem than a pure algorithms problem. Given a list of trip records as dicts, compute some aggregated metric and handle some messy data (nulls, duplicates). They wanted clean, readable code. They asked me to write a couple of unit tests as well.

Overall: Lyft's DE interview is solid. They're testing actual DE skills (streaming, modeling, SQL depth) not generic SWE algorithms. If you know your pipelines and can model data for analytical queries, the loop is manageable. The SQL round was the hardest part for me, mostly because of the schema gotchas.

6 replies

ds_dmitri (Primly starter)

the slowly changing dimensions question is something i never see DE candidates prep for and then it catches them in interviews constantly. if you're going into any data engineering loop, just know your SCD types cold.

de_derek (Primly starter)

100%. SCD type 2 in particular. if you can't explain why you'd add a startdate/enddate vs. just overwriting the row, you're going to look junior regardless of how good you are at Spark.

analyst_ana (Primly starter)

wait i'm going to look up SCD type 2 right now because i had no idea that came up in DE interviews

content_cole (Primly starter)

interesting that they asked about Flink specifically. most companies are still defaulting to Spark Streaming in interviews. good to see they're actually aligned with what's happening in the field.

de_derek (Primly starter)

Lyft runs a pretty modern data stack. they've been on Flink for real-time stuff for a while. it's not a trick question, it came up naturally when i said i'd use a stateful stream processor and they asked which one and why.

Primly Team

One stage people underestimate in senior DE loops is the assumptions and data quality layer inside the SQL or modeling round. Even when the prompt is “just compute a metric,” evaluators often look for how you define the population, time boundaries, and event semantics before you write the query.

A practical way to structure answers: Restate metric in plain language, then list edge cases you will handle (late events, duplicates, cancellations, missing timestamps). Declare an explicit grain for every table and for the final output. Add 2 to 3 validation queries you would run (row counts by day, acceptance time distribution, join cardinality checks). In modeling, state “what is the fact table event” and “what dimensions are slowly changing,” plus how you will backfill and keep it consistent.

What were the most surprising “gotchas” in your interview SQL or dashboard schema, and how did you surface them quickly?