dbt, Snowflake, Airflow, and the tools powering modern analytics engineering.
Learn how modern companies build scalable data systems using specialized tools that work together. From data sources to dashboards, understand each layer and choose the right tools for your organization.
Master advanced dbt patterns including incremental models, sophisticated testing strategies, and production deployment workflows. Transform your warehouse into a mature software development environment.
Learn when to use dimensional modeling's star schemas versus modern One Big Table approaches for analytical data. Compare both methods with hands-on examples using real e-commerce and SaaS data.
Learn to sync clean warehouse data back to Salesforce, Intercom, and other business tools. Build production-ready pipelines with incremental syncing, error handling, and comprehensive monitoring.
Master the fundamental choice between streaming and batch processing. Learn when each approach works best and how to build hybrid systems that combine both for optimal results.
Learn the architectural differences, pricing models, and performance characteristics of the three major cloud data warehouses. Practical guidance for choosing the right platform for your analytics workload.
When a customer moves cities or an employee gets promoted, does your data warehouse know what was true at the time of each transaction? This lesson teaches you exactly how to design, implement, and query SCD Type 1, 2, and 3 tables so your historical reports are always accurate.
Most dbt projects have tests. Few have a data quality strategy. This lesson takes you from basic generic tests to custom macros, statistical checks, and a tiered execution strategy that scales to production without grinding your pipeline to a halt.
Metric sprawl kills data trust. Learn how to implement a production-grade semantic layer using dbt Metrics (MetricFlow) and Cube.js — defining metrics once, serving them consistently everywhere, and never explaining why your revenue numbers don't match again.
ETL dominated data engineering for decades — but modern cloud data warehouses changed the rules. Learn why today's data teams load raw data first, transform it inside the warehouse, and how tools like dbt make it all work.
Running dbt in production means far more than a cron job. Learn how to build production-grade Airflow DAGs that handle upstream dependencies, partial failures, retries, and observability for your dbt transformation pipeline.
Most dbt incremental models work fine in development and silently destroy performance at production scale. This deep-dive lesson teaches you how partition pruning actually works in BigQuery, Snowflake, and Databricks, how to design configurable lookback windows for late-arriving data, and which incremental strategy — merge, insert_overwrite, or append — to use and when.
Stop manually stitching together CSVs and spreadsheets. This hands-on lesson walks you through setting up a real cloud data warehouse in Snowflake or BigQuery — for free — loading actual e-commerce data, and writing your first analytical SQL queries from scratch.
Silent data failures are more dangerous than loud ones — your pipeline runs green while bad data flows to your dashboards. Learn how to instrument dbt with Elementary and re_data for anomaly detection, Slack alerting, and systematic root cause analysis in production environments.
When your revenue dashboard shows unexpected numbers at 9 AM, can you trace the problem to its source in minutes or hours? This deep-dive lesson teaches you to build production-grade multi-hop lineage tracking across Airflow, dbt, and Spark using OpenLineage and Marquez — including programmatic graph traversal for automated impact analysis and root-cause debugging.
Shipping dbt changes without Git is like editing a financial spreadsheet with no undo button. This lesson teaches you the complete workflow: feature branches, automated CI checks with GitHub Actions, and controlled production deployments — with real code you can use today.
Data pipelines break silently when producers and consumers operate without formal agreements. This lesson walks through designing, enforcing, and evolving data contracts across the full ingestion-to-transformation boundary — with working Python validators, dbt integration, and a CI-enforced review workflow for managing schema changes.
Learn how to build a production-grade dbt promotion pipeline that uses Slim CI to run only modified models, deferred state to resolve dependencies against production, and webhook-based promotion gates to prevent bad code from ever reaching your business-critical data. This is the CI/CD architecture lesson that dbt's documentation glosses over.
Misconfigured data warehouse permissions are one of the most expensive and common mistakes in modern data engineering. This lesson teaches you how to design and implement a complete RBAC system in both Snowflake and BigQuery — covering virtual warehouse access, schema isolation, and dynamic row-level security policies that filter data based on who's asking.
Slow dbt models are almost never a dbt problem — they're SQL problems hiding behind dbt abstractions. This lesson teaches you how to read Snowflake Query Profiles and BigQuery Execution Details, diagnose contention with resource monitors, and make smart materialization decisions that actually reduce warehouse cost and latency.
Most dbt projects start clean and become tangled fast — business logic in staging models, 200-line mart files, copy-pasted CTEs everywhere. This lesson teaches you the staging, intermediate, and mart architecture from first principles, giving you the design intuition to structure a dbt project that stays maintainable as it grows to hundreds of models.
Full refresh syncs are quietly one of the biggest cost drivers in modern data stacks — and most teams don't realize it until the bills arrive. This lesson teaches you exactly how to configure incremental sync in both Fivetran and Airbyte, including how to choose cursor fields, when to use CDC, and how to avoid the silent data quality failures that trip up experienced engineers.
Medallion Architecture gives your data a clear, auditable path from raw to refined — but the implementation details are where most teams go wrong. This hands-on lesson shows you how to design and build production-grade Bronze, Silver, and Gold layers using dbt, Delta Lake, and cloud warehouses, with realistic code, common failure modes, and the discipline to make it stick.
Most self-serve analytics platforms either lock users out entirely or let them connect to anything and break everything. This lesson shows you the architecture that does neither — using dbt Exposures as governance contracts, a MetricFlow or Cube.dev semantic layer for consistent metric definitions, and properly governed Tableau and Looker access with row-level security baked in.
Learn how Airflow's interval-based scheduling model really works — and how to safely backfill months of historical data without duplicating records. This hands-on lesson covers catchup behavior, the backfill CLI, and the idempotent design patterns every data pipeline needs.
Learn how to build production-grade dbt packages that share macros, models, and generic tests across multiple analytics projects. This hands-on lesson covers package architecture, adapter-aware macro design, versioning, integration testing, and dependency management — everything you need to stop copy-pasting logic and start engineering shared analytics infrastructure.
Decomposing a large dbt monolith into a governed multi-project architecture is one of the hardest data engineering challenges teams face at scale. This lesson walks through the complete migration journey — dependency mapping, contract design, cross-project references, and production deployment orchestration — with the depth and specificity to actually execute it.
When the same customer lives in Salesforce, HubSpot, and Zendesk simultaneously, your analytics are lying to you. Learn how to build a systematic, warehouse-native deduplication pipeline using SQL window functions, COALESCE-based merge strategies, and reusable dbt macros — so every entity has exactly one golden record.
Silent stale data is the data reliability problem that error monitoring can't catch — and it's responsible for more stakeholder trust erosion than almost any pipeline failure. This lesson walks you through building a complete, production-ready freshness SLA system that monitors every layer of your stack, from Fivetran connectors through dbt models to your BI serving layer, with real alerting logic that doesn't cry wolf.
Slow analytics queries are almost always a storage design problem, not a hardware problem. Learn how columnar storage, partitioning, and clustering work from first principles — and how to design tables that make your queries 10x faster and cheaper.
Multi-tenant analytics platforms live or die on data isolation. This deep-dive lesson teaches you to implement production-grade row-level security and column masking in both Snowflake and BigQuery, using a shared-schema architecture with policy-driven controls that scale to hundreds of tenants.
Learn how to build a production-grade streaming pipeline that moves data from Kafka into Snowflake with sub-minute analytics freshness — using Snowpipe Streaming, Dynamic Tables, and dbt together without sacrificing transformation quality or governance. This deep-dive covers every layer from connector configuration to late-arriving data handling and freshness monitoring.
Most analytics performance problems aren't about compute — they're about how the data is organized. This lesson teaches you the star schema and snowflake schema from first principles, with real SQL examples, so you can design data warehouses that are fast, intuitive, and built for self-serve analytics.
Stop running nightly batch syncs that miss deletes and lag by hours. Learn how to build a production-grade CDC pipeline using Debezium and Airbyte that captures every INSERT, UPDATE, and DELETE from PostgreSQL in real time — and lands it cleanly in your cloud warehouse. This lesson covers the full stack: WAL configuration, connector setup, Kafka topics, and dbt transformation models for both current state and event history.
Data Vault 2.0 solves the messy reality of multi-source data integration without requiring you to redesign your warehouse every time a source system changes. This expert lesson walks you through building production-grade Hubs, Links, and Satellites using dbt incremental models and Snowflake, including hash key design, change detection, Point-In-Time tables, and performance optimization — with real SQL you can use today.
When a customer moves or a product gets recategorized, what happens to your historical reports? This lesson explains how Slowly Changing Dimensions work — and how to choose between Type 1, Type 2, and Type 3 to keep your analytics warehouse honest.
Learn how to extract, model, and visualize Snowflake and BigQuery cost data at the query level — attributing spend to specific dbt models, teams, and business domains. Build an automated cost attribution pipeline with dbt and Airflow and design a dashboard that drives real cost optimization decisions.
Build a production-grade compliance architecture that combines Snowflake Dynamic Data Masking, dbt macros, and systematic deletion propagation to satisfy GDPR and CCPA requirements — without sacrificing analytical value or engineering maintainability.
Data freshness is one of the most quietly damaging problems in analytics — your pipeline looks fine, but your data is hours older than anyone realizes. This lesson teaches you exactly where freshness is lost across ingestion, transformation, and scheduling, and how to design pipelines that deliver data at the age your business actually needs.
SCD Type 6 blends historical accuracy with current-state query performance by stamping the latest attribute value across every historical row. This deep-dive shows you how to build a complete, production-ready Type 6 dimension in dbt using snapshots, incremental models, and merge strategies — with hybrid alternatives for when Type 6 alone isn't enough.
Most Airflow DAGs for Snowflake and dbt are a mess of copy-pasted PythonOperators with inconsistent error handling. This lesson shows you how to build a proper, packageable layer of custom operators and hooks that every engineer on your team can rely on — with real code, testing patterns, and the architectural reasoning behind every decision.