3h 2m total
Move and transform data reliably at scale. Starting from what the data-engineering role actually is, you'll map the modern data stack and the batch-vs-streaming, OLTP-vs-OLAP divides. Then you'll model data for analytics with dimensional star and snowflake schemas, facts and dimensions, and slowly changing dimensions, and choose between a warehouse, a lake, and a lakehouse (with columnar Parquet under the hood). You'll write advanced analytical SQL — window functions, CTEs, grouping sets, and partition-aware performance — then build transformations the modern way: ETL vs ELT, a dbt-style project of models and tests, and idempotent incremental models. From there you scale out with distributed batch processing in Spark (DataFrames, partitions and shuffles, transformations vs actions, lazy evaluation), move to streaming with Kafka (topics, partitions, consumer groups, delivery semantics, event-driven pipelines), orchestrate everything with Airflow (DAGs, scheduling, backfills, idempotency, retries, sensors), and make it trustworthy with data contracts, tests, freshness and volume checks, lineage, and governance. The capstone ties it together into an end-to-end batch + streaming pipeline that is orchestrated and tested. Assumes working SQL and basic Python (see the SQL and Python courses); this one teaches the data-platform layer on top.