Learn the SQL you need for analytics — SELECT to JOINs — using DuckDB, the in-process analytics database.
A two-lesson taste of courses-as-code, synced from GitHub.
RANK, LAG, and rolling aggregates — the SQL that turns row-by-row data into answers about change over time.
Facts, dimensions, and the grain — how to shape tables so every later query gets simpler.
A full transformation pipeline on your laptop: dbt models compiled straight into an in-process DuckDB.
Why analytics engines read Parquet 100× faster than CSV, and how to work with it directly.
From raw files to answers with dataframes — the working core of analytical Python.
Idempotency, backfills, and alerts — what separates a script that ran once from a pipeline you can trust.
Structs, lists, and raw JSON columns — how to unnest the messy shapes real APIs hand you.
Freshness, volume, and validity checks — catch broken data before your stakeholders do.
The terminal as a data tool: inspect, slice, and convert files before anything heavier gets involved.