What you'll learn in this program

Learning path

  1. dbt fundamentals

    Project structure, models, sources, and refs. Setting up development environments and connecting to data warehouses. Version control with Git.

  2. Advanced modeling techniques

    Incremental models, snapshots for slowly changing dimensions, ephemeral models, and materialization strategies. Performance considerations for large datasets.

  3. Testing and documentation

    Schema tests, data tests, custom tests using SQL. Auto-generated documentation, lineage graphs, and maintaining data dictionaries.

  4. Macros and packages

    Writing Jinja macros for reusable logic, using dbt packages, and contributing to open source. Cross-database compatibility patterns.

  5. Orchestration and deployment

    CI/CD pipelines for analytics code, environment management, scheduling with Airflow or dbt Cloud. Monitoring transformation runs.

  6. Real-world project

    Build a complete analytics layer for an e-commerce platform. Implement customer segmentation, product analytics, and financial reporting models with full test coverage.

Students complete this program with a portfolio project demonstrating production-ready analytics code.

How this program works

Analytics engineering sits between data engineering and analysis. This program teaches you to build maintainable transformation layers using software engineering practices applied to SQL.

The dbt framework forms the core of this curriculum. You will learn to structure projects, write modular transformations, test data quality, and generate documentation automatically. Each lesson includes exercises based on scenarios that analytics engineers face daily.

Skills you will develop

Version control becomes second nature as you collaborate on shared data models. You will write tests that catch data anomalies before they reach dashboards, create reusable macros for common transformations, and implement incremental models that process only new records.

The program emphasizes practical problem-solving. When should you use views versus tables? How do you handle late-arriving data? What testing strategy catches the most issues with minimal maintenance? These questions get answered through direct experience.

Get Started

How does this program sound to you?