
Track · Intermediate
Data Engineering
Pipelines, warehouses, and the systems that feed ML models.
Build the systems that move and model data: file formats and SQL, pipelines with Airflow-style DAGs and dbt, data quality and testing, warehouses, star schemas and streaming. It ends with an end-to-end mobile-money pipeline.
- Modules
- 5
- Labs
- 21
- Projects
- 5
- Activities
- 150
The journey
5 modules, one skill at a time
What you'll build
5 projects from real local data

Project · Module 1
Digitise a SACCO's Ledger
A savings cooperative in Nyeri keeps a year of member contributions in a spreadsheet. Profile its problems, design a proper database, load the clean rows (and report the rest), and export an analysis-ready Parquet file.

Project · Module 2
Mobile-Money Ledger Analytics
A mobile-money provider's operations team needs three numbers every morning: daily volume and its trend, customers slipping away, and agents who handle unusual volumes. Build the queries in DuckDB and ship them as Parquet.

Project · Module 3
A Crop Prices Pipeline
A maize and bean cooperative in Kitale wants to know each week where its crops fetch the best price. Build the pipeline end to end: resilient extract, clean transform, idempotent incremental load, a week of scheduled runs through an API outage, and the weekly report.

Project · Module 4
Trustworthy Immunisation Data
Thirty health facilities send monthly immunisation reports to a county health records office. Merge two exports whose schema changed mid-year, enforce a contract, keep the latest resubmission (with tests to prove it), and measure completeness and timeliness in a data-quality report.

Project · Module 5
A Mobile-Money Analytics Pipeline
Everything in the track, end to end. Take a year of raw mobile-money transactions from export to lake, model a star schema with history, test it, and publish a daily report through an orchestrated pipeline that refuses to publish bad data.
Syllabus
Every module and lab
- Lesson
- Interactive
- Quiz
- Trace
- Puzzle
- Find the bug
- Scenario
- Practice
- Challenge
- Reflect
Data foundations
NumPy and pandas (shared with the other tracks), file formats, and modelling data into tables that can't contradict themselves.
5 labs · 35 activities
Lab 01 · Arrays & vectorisation
NumPy: Whole Columns at Once
Machine learning is maths on thousands of numbers at once. NumPy arrays let you do it in one line — no loops — and they're what every ML library runs on underneath.
35 min8 activitiesLab 02 · DataFrames
pandas: Tables You Can Question
pandas is the spreadsheet of data science. Load 80 farms, select, filter, group and clean them — the everyday moves before any model is trained.
40 min8 activitiesLab 03 · CSV, JSON and Parquet
Files & Formats
Data moves between systems as files. Learn what each format keeps and loses — why CSV forgets your types, how JSON nests, and why data lakes run on Parquet — using the libraries data engineers use.
40 min7 activitiesLab 04 · Tables, keys and relationships
Data Modelling
A flat export repeats every customer and agent on every row — and quietly contradicts itself. Find the entities, normalise into linked tables with keys, and let a database enforce the rules.
45 min7 activitiesProject · Capstone
Digitise a SACCO's Ledger
A savings cooperative in Nyeri keeps a year of member contributions in a spreadsheet. Profile its problems, design a proper database, load the clean rows (and report the rest), and export an analysis-ready Parquet file.
60 min5 activities
Milestone 1
Data that holds together
You can choose the right file format, normalise messy exports into linked tables, and load them into a database that enforces the rules.
SQL in depth
The language every data system speaks — from everyday queries to window functions, query plans and DuckDB.
4 labs · 27 activities
Lab 05 · Asking questions of databases
SQL for Analysts
Real data lives in databases, and SQL is how you ask for it. Build a database in your browser, then filter, group, join and clean with SQL — and hand the answers to pandas.
45 min7 activitiesLab 06 · Analytical SQL
Window Functions & DuckDB
Running balances, rankings, month-on-month growth: the questions GROUP BY can't answer. Learn window functions in DuckDB — the fast analytics database that runs anywhere, even in your browser.
45 min7 activitiesLab 07 · Making queries fast
Indexes & Query Performance
Why does one query take milliseconds and another minutes? Read query plans, add the right index, measure the speed-up, and see why analytics databases store data by column.
40 min8 activitiesProject · Capstone
Mobile-Money Ledger Analytics
A mobile-money provider's operations team needs three numbers every morning: daily volume and its trend, customers slipping away, and agents who handle unusual volumes. Build the queries in DuckDB and ship them as Parquet.
60 min5 activities
Milestone 2
Fluent in analytical SQL
You can write joins, CTEs and window functions, read query plans, add the right indexes, and choose between row and column stores.
Pipelines & orchestration
Move data reliably from where it’s made to where it’s used: extract from APIs, load idempotently, and orchestrate with Airflow-style DAGs and dbt.
4 labs · 29 activities
Lab 08 · APIs, pages, retries and watermarks
Extracting Data
Every pipeline starts by pulling data from somewhere else. Page through an API, survive the errors real networks throw, and download only what changed since last time.
45 min8 activitiesLab 09 · Clean, idempotent, incremental
Transform & Load
Turn raw API records into a clean table, and load them so that running the job twice, after a crash or for a backfill, never double-counts. This is the property that separates a script from a pipeline.
50 min8 activitiesLab 10 · DAGs, schedules, retries, SQL models
Orchestration with Airflow & dbt
Real pipelines are many tasks with dependencies, run on a schedule. Learn how Airflow runs them, build a small orchestrator yourself, then build a mini dbt that turns SQL files into a dependency graph.
55 min8 activitiesProject · Capstone
A Crop Prices Pipeline
A maize and bean cooperative in Kitale wants to know each week where its crops fetch the best price. Build the pipeline end to end: resilient extract, clean transform, idempotent incremental load, a week of scheduled runs through an API outage, and the weekly report.
60 min5 activities
Milestone 3
Pipelines that run themselves
You can build an incremental, idempotent ETL pipeline that survives outages and re-runs, schedule it as a DAG, and organise SQL transforms the dbt way.
Data quality & testing
Catch bad data before it reaches a dashboard or a model: contracts with JSON Schema and pydantic, pytest and data tests, monitoring and lineage.
4 labs · 30 activities
Lab 11 · Contracts with JSON Schema and pydantic
Validating Data
Stop bad data at the door. Write a contract for an API's records in JSON Schema, turn it into a pydantic model that parses and checks every record, and quarantine what fails instead of loading it or crashing.
45 min8 activitiesLab 12 · pytest, fixtures, mutants and data tests
Testing Pipelines
Write real pytest tests for pipeline code, check that they would actually catch bugs by running them against deliberately broken versions, and write dbt-style data tests that run against the tables themselves.
50 min8 activitiesLab 13 · Volume, freshness, drift and blast radius
Monitoring & Lineage
The worst pipeline failures report success. Build the monitors that catch them (volume anomalies, late data, schema drift), then use lineage to work out what a failure broke downstream and who needs to know.
45 min8 activitiesProject · Capstone
Trustworthy Immunisation Data
Thirty health facilities send monthly immunisation reports to a county health records office. Merge two exports whose schema changed mid-year, enforce a contract, keep the latest resubmission (with tests to prove it), and measure completeness and timeliness in a data-quality report.
60 min6 activities
Milestone 4
Data people can trust
You can enforce a data contract and quarantine failures, test pipeline code and data, and monitor volume, freshness and drift, tracing any failure to everything it affects.
Warehouses & scale
The systems behind analytics at large organisations: lakes and warehouses, partitions, star schemas, and batch vs streaming.
4 labs · 29 activities
Lab 14 · Columnar storage, partitions, ELT
Warehouses & Lakes
Where analytical data lives at scale. Build a small data lake of partitioned Parquet files, watch DuckDB skip the files a query doesn't need, and load a warehouse that can be rebuilt one partition at a time.
45 min8 activitiesLab 15 · Star schemas, facts, dimensions, SCDs
Dimensional Modelling
The shape analysts love: a fact table of events surrounded by dimensions that describe them. Model a year of mobile-money transactions as a star schema, query it, and keep history when agents change their names and towns.
50 min8 activitiesLab 16 · Events, offsets, windows, watermarks
Batch vs Streaming
Some questions can wait for tonight's batch; a suspicious payment can't. Learn how streaming systems like Kafka and Flink work: consume a log with offsets, survive a crash without double-counting, and count events in time windows even when they arrive late.
50 min8 activitiesProject · Final capstone
A Mobile-Money Analytics Pipeline
Everything in the track, end to end. Take a year of raw mobile-money transactions from export to lake, model a star schema with history, test it, and publish a daily report through an orchestrated pipeline that refuses to publish bad data.
75 min5 activities
Milestone 5
Data Engineering — complete
You can design and build a pipeline end to end: lake, warehouse, star schema with history, tests that gate publishing, and streaming when minutes matter.