Interviewing
Data Engineer Interview Prep for 0–2 Years of Experience
Six weeks for an early-career loop: the basics of each round, then your own project.
It opens on your dashboard and ticks itself off as you go. Every step below is a chapter or an exercise that already ships.
01
When you finish, you can
You can prepare every round of an early-career loop and defend your own project.
Loop day Ready for an early-career loop
02
The plan, 6 weeks
Ordered by what each one buys you, not by topic. Every step says why it is here.
Week 01 · ~3h
SQL: read, join, group and rank
You can query, join, group and rank a table without double counting.
Skip this if you write a join with a window rank in 15 minutes.
- SectionNULL: the missing value6 minNULL is missing, not zero. Filters treat it differently.
- SectionOne row per group6 minOne row per group. Aggregate everything else.
- ExerciseRevenue and orders by status10 minin the studioCount and sum per group.
- SectionFilter groups with HAVING6 minWHERE filters rows. HAVING filters groups.
- ExerciseBest selling products, paid only15 minin the studioWHERE and HAVING in one query.
- InterviewDISTINCT vs GROUP BY6 minTwo ways to remove repeats. They differ.
- SectionINNER JOIN: only matches6 minKnow which rows an inner join drops.
- SectionLEFT JOIN: keep every left row6 minKeep every left row, even with no match.
- ExerciseCustomers who never ordered12 minin the studioLEFT JOIN plus IS NULL: the anti-join.
- InterviewIN vs EXISTS6 minThe opener most screens use. NULLs decide it.
- SectionFan-out: sums that double6 minA join can multiply rows. Check the counts.
- ExerciseRevenue per customer without double counting15 minin the studioSum per customer without double counting.
- SectionTies: three ranking functions6 minThe three differ only when rows tie.
- SectionTop N per group6 minRank inside each group, then keep the top.
- ExerciseTop buyers by revenue15 minin the studioAggregate at the right grain first, then rank.
- SectionLatest row per key6 minName the dedupe key before you write the window.
- ExerciseDeduplicate order snapshots15 minin the studioLatest row per key: the most reused pattern.
- QuestionsSQL · Conceptual15 minSay each answer aloud, with no editor open.
Week 02 · ~4h
Python: dicts, files and bad rows
You can read records, group them, dedupe them and explain mutability.
Skip this if you clean a messy file in plain Python unaided.
- SectionA record is a dict4 minA record is a dict. Start there.
- SectionGroup and count6 minGroup and count with a dict.
- ExerciseCount events by type20 minin the studioCount with a dict. Mind the ordering.
- SectionSets and distinct values6 minA set removes repeats and answers "is it there?"
- ExerciseDeduplicate rows, first one wins20 minin the studioFirst one wins, and order is kept.
- SectionMutable and immutable6 minWhich types change in place, and why it matters.
- InterviewMutable vs immutable6 minSay it with one example for each.
- InterviewList vs tuple6 minAlso say why a tuple can be a dict key.
- SectionRead CSV with the csv module6 minRead CSV rows as dicts.
- SectionJSON: one document6 minOne JSON document, read safely.
- ExerciseTotal revenue by region25 minin the studioConvert types, then total by key.
- SectionPlan for bad records5 minDecide what a bad record does before it arrives.
- ExerciseValidate rows against a schema25 minin the studioCheck each row against rules, then report the failures.
- SectionWrite a generator with yield6 minA generator hands over one row at a time.
- InterviewMerging two dictionaries6 minLater wins on shared keys. The merge is shallow.
- InterviewCommon ids between two lists6 minCommon ids between two lists: use sets.
- InterviewThe list that remembers6 minThe bug every Python screen has.
- ExerciseFind the second largest different value15 minin the studioA warm-up. Mind duplicates and short lists.
- ExerciseFind the first event id that appears once15 minin the studioCount every id, then scan for the first single.
- ExerciseCheck if two strings use the same letters15 minin the studioCompare letter counts, ignoring case and spaces.
- ExerciseFind the words that appear only once across two messages20 minin the studioCount across both messages, keep words seen once.
- QuestionsPython · Conceptual15 minSay each answer aloud, with an example.
Week 03 · ~4h
Data modeling and the warehouse
You can state a grain, draw a star schema and pick an SCD type.
Skip this if you state the grain first and explain OLTP against OLAP.
- SectionSame shop, two workloads6 minOne shop, two kinds of work.
- SectionThree ways the table breaks6 minWhy the app splits tables into small ones.
- SectionWhy analytics denormalizes6 minWhy analytics flattens them again.
- InterviewLogical vs physical schema6 minMeaning versus storage. A partition key is storage.
- SectionGrain is one sentence6 minGrain is one sentence about one row.
- Worked exampleMarketplace core entities25 minin the studioA finished model. Walk it before you build one.
- SectionFact tables: what you measure6 minFacts are what you measure.
- SectionDimension tables: how you group6 minDimensions are how you group.
- InterviewWhat is the grain of a table6 minThe first modeling question in most loops.
- InterviewFact or dimension6 minMeasure or group-by: decide per column.
- SectionThe star schema in action6 minThe star schema in action.
- SectionStar vs snowflake: trade-offs6 minStar versus snowflake: pick one and say why.
- ExerciseFood delivery orders30 minin the studioDesign the tables, then state the grain.
- SectionType 0 and Type 16 minOverwrite, or keep the original.
- SectionType 2: add a new row6 minA new row for each change keeps history.
- InterviewWalk me through the SCD types6 minTypes 1, 2 and 3, each with a use.
- SectionNatural and surrogate keys6 minWhich key survives a business change?
- InterviewPrimary key vs unique key6 minKeys are not enforced in most cloud warehouses.
- InterviewAthena against Redshift6 minQuery files in S3, or load a warehouse?
- InterviewWhat is BigQuery?6 minThe Google Cloud warehouse, in one answer.
- InterviewWhat is Azure Synapse6 minThe Azure workspace: SQL, Spark and pipelines.
- SectionName only the columns you need6 minWhy a warehouse reads only the columns you name.
- SectionSplit a table by date6 minPartition by date so filters skip whole slices.
- ExerciseRide hailing trips30 minin the studioA second model, faster. Say the grain first.
- QuestionsData Modeling · Conceptual15 minSay each definition aloud with an example.
Week 04 · ~4h
Pipelines and Airflow, the basics
You can explain a safe, rerunnable pipeline and what Airflow adds.
Skip this if you explain idempotency, a backfill and a DAG without notes.
- SectionThe five-stage lifecycle6 minIngest, store, transform, serve, observe.
- SectionWhat each letter moves5 minWhat each letter moves, and where.
- InterviewWhich layer cleans the data6 minRaw stays raw. Clean once, in the curated layer.
- SectionLatency, cost and effort5 minPick batch first. Say when you would not.
- ExerciseYour first pipeline30 minin the studioBuild the whole flow once.
- SectionSafe to run twice6 minSafe to run twice, the idea behind every answer.
- ExerciseCounting it once30 minin the studioA rerun must not double the count.
- SectionIncremental by created date6 minLoad only what is new.
- SectionBackfill: run for last Tuesday6 minRun again for last Tuesday, safely.
- ExerciseRun it for last Tuesday30 minin the studioBackfill one day without touching the others.
- InterviewAppend, merge or overwrite6 minThree ways to write. One is safe to rerun.
- InterviewKafka architecture, in one breath6 minKnow Kafka in one breath: topics, partitions, brokers.
- SectionA check is a query6 minA check is a query that returns bad rows.
- ExerciseWhere did the rows go?30 minin the studioFind where rows were lost, by counting.
- SectionWhat cron cannot express6 minWhy a scheduler beats cron.
- SectionWhy the graph must not loop6 minA DAG is tasks and arrows, with no loops.
- SectionThe whole file, and why each line is there6 minEvery line of a first DAG file.
- SectionData Intervals: When Runs Start6 minWhen a daily run actually starts.
- ExerciseWhich day does it belong to?30 minin the studioMatch each run to the day it covers.
- QuestionsData Pipeline · Conceptual15 minSay each trade-off aloud before the interviewer asks.
- QuestionsAirflow · Conceptual15 minSay what a run is, and why it ran.
Week 05 · ~4h
Spark: how it works, and basic code
You can explain lazy evaluation, stages and joins, and read basic PySpark.
Skip this if you explain job, stage and task, and why a join shuffles.
- SectionDo you need Spark?6 minKnow when Spark is the wrong tool.
- SectionDriver and executors6 minDriver and executors: the warm-up answer.
- InterviewThe three components, named6 minDriver, executors, cluster manager: the warm-up question.
- SectionTransformations and actions6 minTransformations plan. Actions run.
- ExerciseTwo counts, two scans: which lines of PySpark actually cost anything?10 minin the studioWhich lines of PySpark actually cost anything?
- SectionNothing runs until show()6 minNothing runs until an action. Say why.
- InterviewHow many DAGs does a script build?6 minOne action, one job. Cached or recomputed?
- SectionNarrow and wide steps6 minNarrow steps stay put. Wide steps shuffle.
- ExerciseNarrow vs wide: what makes Spark cut a new stage?15 minin the studioWhat makes Spark cut a new stage?
- SectionApplication, job, stage, task6 minJob, stage, task: the words every answer uses.
- Sectionrepartition or coalesce6 minAsked by name, and often answered backwards.
- Exerciserepartition(6) or coalesce(1) before a write: what is the difference?20 minin the studioSee the difference in the files you write.
- SectionThree ways Spark joins6 minBroadcast or sort-merge: say which and why.
- ExerciseHow Spark decides to broadcast a join without being told15 minin the studioHow Spark picks a broadcast join on its own.
- ExerciseTop 3 orders per country with row_number(): what does Spark run?20 minin the studioTop 3 per country with row_number().
- Sectioncache() and reuse6 minWhat cache saves, and what it does not.
- ExerciseWhat does .cache() actually save? Prove it from the plan20 minin the studioProve from the plan what cache() saved.
- Exerciseerrorifexists, ignore, append, overwrite: what does each save mode do?15 minin the studioTry each save mode and count rows and files.
- ExerciseWhy is Parquet faster than CSV? Answer from the plan, not folklore20 minin the studioWhy Parquet beats CSV, from the plan.
- InterviewReading a file with bad rows in it6 minChoose a read mode for a file with bad rows.
- InterviewSpark vs MapReduce6 minWhy Spark replaced MapReduce for most jobs.
- QuestionsApache Spark · Conceptual & architecture15 minFundamentals said cleanly. Internals are for later.
Week 06 · ~3h
Your project and the loop
You can walk one project aloud and tell two honest stories.
Skip this if your project walkthrough is rehearsed aloud, with numbers.
- ChapterThe Recruiter & Hiring-Manager Screen20 minYour 60-second story, then the long one.
- ChapterLive Coding: SQL & Python20 minWhat live rounds test, and how to narrate.
- ExerciseFirst and latest order per buyer15 minin the studioRehearse live: set a 20-minute timer.
- ExerciseKeep only the latest row for each event25 minin the studioRehearse live: say the edge cases first.
- InterviewProject: walk me through it6 minFixed order, real numbers, about two minutes.
- InterviewProject: a rerun without duplicates6 minProve a rerun adds nothing, with numbers.
- InterviewProject: the source changed a field6 minThe first hour: stop, look, land raw, decide.
- InterviewProject: how do you know it is right6 minThree places to check: input, output, trends.
- InterviewProject: your worst incident6 minA real incident, told in order.
- ChapterBehavioral Storytelling20 minPrepare each story once, then point it at the question.
- InterviewA time you made a mistake6 minA real mistake, owned in the first sentence.
- InterviewA disagreement, and how it resolved6 minShow your evidence, and what you did after.
- ChapterTake-Home Projects20 minWhat a take-home is scored on.
- QuestionsBehavioral · Ownership & delivery15 minTell each story aloud, under three minutes.
03
Start it now
Reading is free and needs no account. The plan itself tracks on your dashboard.
