Read the concepts, patterns, and interview signals behind each module.
Query systems
Relational thinking, analytical query patterns, and the habit of explaining results before optimizing syntax.
How interviewers read a query plan from your CTEs
Window functions for retention, ranking, and deduping
When a correct query becomes too expensive to ship
Data transforms
Transformation code that stays legible under messy inputs, edge cases, and interviewer follow-up questions.
Writing transforms that reveal intent line by line
Validation before mutation in event normalization jobs
How to narrate tradeoffs while coding live
Data architecture
Grain, keys, ownership, and governance decisions that make data products durable instead of merely diagrammed.
Choosing grain before naming tables
Facts, dimensions, and history without hand-waving
Data contracts and schema evolution in real teams
Production flows
Ingestion, orchestration, lakehouse choices, streaming edges, and failure paths for systems that must be operated.
Designing a DAG that makes failure obvious
Batch, streaming, and lakehouse paths in one architecture
Retries, idempotency, SLAs, and alert fatigue
Field notes
Round-by-round preparation for live coding, system design, take-homes, behavioral storytelling, and follow-up.
What a data engineering screen is really testing
How to structure a take-home explanation
Recovering well when your first answer is incomplete
Career signal
Resume signals, portfolio framing, project storytelling, seniority markers, and communication habits that compound.
Turning project work into credible interview evidence
Resume bullets that show ownership, not activity
Explaining scope, impact, and tradeoffs cleanly