All roadmaps

Analytics engineer

Analytics engineer path

Turn raw tables into clean, tested models that analysts can trust, using SQL and dbt.

  • about 13 weeks at an hour a day
  • 5 stages, 52 steps

Strong SQL

about 3 weeks · 11 steps

After this stage: You write readable SQL with CTEs and windows.

  1. Subqueries and CTEsLessonLockedBreak a hard query into steps.01
  2. Window functionsLessonLockedRankings and running totals.02
  3. Advanced analytics patternsLessonLockedFunnels, retention and gaps.03
  4. SQL 50 practice sheetPracticeKeep the basics sharp.04
  5. Case study: do new members come back?Case studyA retention table, built step by step.05
  6. NULL handlingLessonLockedWhere wrong totals start.06
  7. Cleaning text and datesLessonLockedStandardise values in staging.07
  8. CASE expressionsLessonLockedBusiness rules inside a query.08
  9. Deduplication and incremental upsertsLessonLockedKeep one row per key.09
  10. Querying JSON columnsLessonLockedFlatten semi-structured sources.10
  11. Pivoting and unpivotingLessonLockedReshape for reporting.11

Model the data

about 3 weeks · 8 steps

After this stage: You can design facts and dimensions and say what one row means.

  1. OLTP vs OLAP mental modelLessonLockedWhy analytics tables look different.12
  2. Star schema: facts, dimensions, grainLessonLockedThe shape of analytics data.13
  3. Surrogate keys and conformed dimensionsLessonLockedKeys that survive change.14
  4. Slowly changing dimensionsLessonLockedKeep history when a value changes.15
  5. Capstone: model a star from ordersLessonLockedDo it once on real tables.16
  6. Additive, semi-additive and non-additive factsLessonLockedKnow which measures you can sum.17
  7. Normalization vs denormalizationLessonLockedChoose the right shape for analytics.18
  8. Views vs materialized viewsLessonLockedTrade freshness for speed.19

Build with dbt

about 3 weeks · 14 steps

After this stage: You can write models, tests and incremental builds.

  1. What is analytics engineering?LessonFreeThe role and the tools.20
  2. dbt project structureLessonFreeWhere models, tests and seeds live.21
  3. What dbt isLessonLockedThe idea in one page.22
  4. Jinja basicsLessonFreeTemplates that write SQL for you.23
  5. source() and ref()LessonLockedHow models depend on each other.24
  6. Staging modelsLessonLockedClean each source once.25
  7. not_null testsLessonLockedThe first test to add.26
  8. unique testsLessonLockedProtect the grain.27
  9. relationships testsLessonLockedCatch orphan keys.28
  10. Marts from staging CTEsLessonLockedBuild tables people query.29
  11. Views, tables and incrementalsLessonLockedChoose how a model is built.30
  12. Incremental vs full refreshLessonLockedBuild only what changed.31
  13. Snapshots and SCD Type 2LessonLockedKeep history of changing rows.32
  14. Capstone: staging, mart, testLessonLockedPut it together.33

Trust the numbers

about 2 weeks · 14 steps

After this stage: You can add checks that catch a bad load before users see it.

  1. What is data quality?LessonFreeWhat can go wrong and where.34
  2. Uniqueness on the grainLessonLockedThe check that catches duplicates.35
  3. Run a suiteLessonLockedGroup checks and read the result.36
  4. Case study: the duplicate click problemCase studyA number that was too high for a reason.37
  5. ProjectsProjectA dbt-shaped staging and tests project.38
  6. Testing strategies for dataLessonFreeWhat to test and where.39
  7. Why quality gatesLessonLockedStop bad data before it ships.40
  8. Not-null on keys and measuresLessonLockedCatch missing values.41
  9. Row count between boundsLessonLockedSpot a load that is too small or too big.42
  10. Accepted valuesLessonLockedCatch new or misspelt categories.43
  11. Freshness and numeric boundsLessonLockedKnow when data is late or off.44
  12. Data lineageLessonLockedTrace a number back to its source.45
  13. SLA versus SLILessonLockedPromise reliability and measure it.46
  14. Capstone: a publish suiteLessonLockedGate a release with checks.47

Run it on a schedule

about 2 weeks · 5 steps

After this stage: You can explain how models are scheduled, rerun and kept safe to repeat.

  1. What is a data pipeline?LessonFreeWhere dbt fits in a larger flow.48
  2. Scheduling and cronLessonFreeRun models on time.49
  3. Idempotent loadsLessonLockedRerun without duplicating.50
  4. Backfills and catch-upLessonLockedRebuild history safely.51
  5. Mock interviewInterviewPractise explaining a model design.52