Fibre-optic cables plugged into a network switch in a server rack

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

  1. 1

    Data foundations

    5 labs

    Data that holds together

  2. 2

    SQL in depth

    4 labs

    Fluent in analytical SQL

  3. 3

    Pipelines & orchestration

    4 labs

    Pipelines that run themselves

  4. 4

    Data quality & testing

    4 labs

    Data people can trust

  5. 5

    Warehouses & scale

    4 labs

    Data Engineering — complete

What you'll build

5 projects from real local data

Syllabus

Every module and lab

  • Lesson
  • Interactive
  • Quiz
  • Trace
  • Puzzle
  • Find the bug
  • Scenario
  • Practice
  • Challenge
  • Reflect
01

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 activities
  • Lab 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 activities
  • Lab 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 activities
  • Lab 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 activities
  • Project · 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.

02

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 activities
  • Lab 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 activities
  • Lab 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 activities
  • Project · 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.

03

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 activities
  • Lab 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 activities
  • Lab 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 activities
  • Project · 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.

04

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 activities
  • Lab 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 activities
  • Lab 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 activities
  • Project · 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.

05

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 activities
  • Lab 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 activities
  • Lab 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 activities
  • Project · 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.