Data Engineer Coding Practice
A DE loop puts you in front of 4 surfaces: SQL on a warehouse, Python in a notebook or script, PySpark on a cluster, and a pipeline design on a whiteboard. Practice that only covers SQL leaves you cold on the other 3. The 1,570 problems here split across all 4, and every one runs on the engine that surface targets, so what comes back is what an interviewer watching your screen would see.
A DE loop puts you in front of 4 surfaces: SQL on a warehouse, Python in a notebook or script, PySpark on a cluster, and a pipeline design on a whiteboard. Practice that only covers SQL leaves you cold on the other 3. The 1,570 problems here split across all 4, and every one runs on the engine that surface targets, so what comes back is what an interviewer watching your screen would see.
Where the prep time should go
% of DE coding interview surface area by category. The biggest miss most candidates make is over-investing in algorithm DSA.
4 coding surfaces, and what each one checks
The shape of the surface drives the shape of the practice. Your SQL has to return the rows the question asked for. Your Python has to survive the test cases, including the ones you did not think of. PySpark comes down to whether the resulting DataFrame holds up. Design gets read the way a staff engineer reads an architecture proposal, dimension by dimension.
WITH ranked AS (
SELECT *, ROW_NUMBER() OVER (
PARTITION BY user_id ORDER BY event_at DESC
) AS rn
FROM events
)
SELECT * FROM ranked WHERE rn = 1;def validate(records, schema):
clean, bad = [], []
for i, r in enumerate(records):
errs = check(r, schema)
(bad if errs else clean).append(
{"i": i, "errs": errs, "r": r}
if errs else r)
return clean, badw = Window.partitionBy("user_id") \
.orderBy(F.desc("event_at"))
df.withColumn("rn", F.row_number().over(w)) \
.filter("rn = 1") \
.drop("rn")[Source] -> [Kafka topic] -> [Flink job]
↓
[DLQ topic]
↓
[S3 bronze]
↓
[dbt incremental]
↓
[Snowflake gold]6-week DE coding prep plan
Calibrated to a candidate with working SQL/Python knowledge targeting a mid-to-senior DE role.
| Week | Surface focus | Daily volume | Target volume | Pass criteria |
|---|---|---|---|---|
| Weeks 1-2 | SQL foundations + topic coverage | 60-90 min | 40-50 SQL problems across joins, GROUP BY, basic window functions | Solve any Easy in <5 min, any Medium in <15 min |
| Weeks 3-4 | SQL window functions + Python patterns | 90-120 min | 30 more SQL (window-heavy) + 25-30 Python (parsing, dedup, validation) | Top-N per group automatic. Write a structured-error validator from memory. |
| Week 5 | PySpark (if relevant) + pipeline design | 2 hr | 20-30 PySpark + 6-8 design canvas problems | Recognize broadcast vs sort-merge threshold. Pick batch vs streaming for a stated SLA. |
| Week 6 | Mocks + weak spots | 60-90 min + 1-2 mocks | Drill mode on weakest topic. 3-4 AI mock loops. | Pass 8 of 10 timed Mediums. Mock verdict consistent across runs. |
DE coding practice FAQ
Is this LeetCode for data engineers?+
Do I need Docker or any local install?+
What languages are supported?+
How long does it take to get DE-interview-ready?+
Should I skip PySpark?+
Are the problems based on real interviews?+
Start week 1, day 1
- 01
Reading a solution is not the same as writing one
Every engineer who has frozen on a query they had read a dozen times knows the gap. The only preparation that closes it is producing the answer yourself, under time, before the interview does it for you
- 02
76% of hiring managers reject on the coding task, not the resume
From HackerRank's 2024 Developer Skills Report. Candidates who look strong on paper still fail the live screen if they haven't done timed, executable practice
- 03
5 problem shapes cover 80% of data engineer loops
Dedup, sessionization, top-N-per-group, slowly-changing dimensions, partition tricks. Writing the shapes by hand turns the unfamiliar into pattern recognition