Home / Learn

Learn

Courses I write to teach myself, open to anyone. Free, no sign-up, and your progress stays in your own browser.

Pipeline to DashboardLive

A 7-week course in ETL and BI: from pulling data out of email, shared drives and APIs to a warehouse, dbt models and dashboards people trust. Each week ends with a project you can put on GitHub.

7 weeks · 49 days · about 4 hours a day · Intermediate

  1. Ingest anything. Landing zones, email, shared drives, SFTP and APIs, on a retail chain.
  2. Clean and trust the data. Profiling, data contracts, Polars and DuckDB, Claude Code, quality gates, on a quick-service chain.
  3. Orchestrate with Dagster. Assets, partitions, sensors and checks, on a hotel group.
  4. Load to the warehouse. Azure SQL, PostgreSQL, DuckDB and ClickHouse, MERGE, watermarks and cost, on a marketing agency.
  5. Model it in SQL. Star schemas, slowly changing dimensions, advanced SQL, dbt and a semantic layer, on restaurant brands.
  6. Deliver BI people trust. Power BI and DAX, open-source BI, scheduled reports and reconciliation.
  7. Run it in production. Observability, CI/CD, choosing tools, a low-cost open stack and a capstone.

All data in the course is synthetic, generated by a script you run yourself.

For: Analysts moving into data engineering, BI developers who want to own the pipeline, and anyone who wants a practical path from spreadsheets to a warehouse.

ETLData cleaningDagsterAzure SQLPostgreSQLDuckDBdbtPower BIClaude Code

Start the course

Setup guideGlossaryProjects

How your progress is saved

  • Ticks, quiz answers and notes save automatically in this browser, on this device only. No account or email, and nothing is sent to me.
  • You lose it if you haven't backed up and you clear your browser's history, cookies or site data, use a private or incognito window, switch browser or device, or your browser clears site data on its own (Safari and iPhone can after about 7 days without a visit).
  • To keep it, press Download backup on the course home page now and then, and keep the file.
  • To continue on another browser or device, open the course there and press Load backup. Your progress only comes back once you load the file.