Course capstone

Build the BigQuery + dbt + Looker project hiring managers want to see.

25 guided steps. A real GitHub repo. A production-shaped dbt project with snapshots, incremental marts, and CI. Scheduled jobs running in dbt Cloud across Dev and Prod. A Looker Studio dashboard you can put in front of a stakeholder — or a hiring manager — and walk through.

See the full curriculum →

Sample marketing-attribution dataset · revenue figures illustrative

Capstone Looker Studio dashboard — sales performance page with total revenue, units, AOV, and revenue trends
What you ship

Three artifacts. One coherent project.

Most courses end with a notebook. The capstone ends with a GitHub repo, a live dbt Cloud project, and a stakeholder-ready dashboard you can demo from a single tab.

01

A public GitHub repo

Sources, staging, intermediate, marts, snapshots, tests, macros, docs. Five logical commit groups, a README a hiring manager can skim in 90 seconds.

02

A dbt Cloud project

Connected to BigQuery, deployed across Dev and Prod environments, with Daily Incremental and Weekly Full Refresh jobs on a schedule.

03

A Looker Studio dashboard

Two pages — Sales Performance and Marketing Efficiency — built directly on the dbt marts. The metric layer is defined in dbt, not in the BI tool.

The deliverable

The dashboard you walk a stakeholder through.

Two pages, built directly on dbt marts in BigQuery. No raw-table joins in Looker; the metric layer is engineered, documented, and tested upstream.

Looker Studio dashboard — page 1, sales performance, with revenue, units, AOV, and revenue-by-product-category charts
Page 1 · Sales Performance — revenue, units, AOV, region splits
Looker Studio dashboard — page 2, marketing efficiency, with revenue vs spend, channel mix, ROAS
Page 2 · Marketing Efficiency — revenue vs spend, channel ROAS, cost per unit
The codebase

Engineered like production dbt, not like a tutorial.

A real GitHub repo with staging, intermediate, mart, snapshot, and test layers. Every model handwritten and reviewed in PRs.

GitHub repo for the capstone — models/mart directory with dim_customers.sql, fct_marketing_roas.sql, fct_order_items_customers.sql
GitHub · the mart layer

Three mart-layer models — a customer dimension built off SCD2 snapshots, a marketing-ROAS fact, and an order-item-grain customer fact. Each one references upstream staging and intermediate models with ref().

dbt Cloud Studio showing dim_customers.sql open with the lineage DAG underneath — raw seeds feeding stg_customers feeding dim_customers feeding fct_order_items_customers
dbt Cloud · lineage for dim_customers

Two raw customer seeds feed a staging model, which feeds the dimension, which feeds a downstream fact. The DAG is visible, versioned, and reviewable — exactly what an analytics team expects from production work.

Shipped, not just written

Scheduled jobs, Dev and Prod, the whole posture.

The capstone teaches the part most tutorials skip — deploying the project to a real schedule, separating Dev and Prod, and monitoring runs the way an on-call analytics engineer would.

dbt Cloud Orchestration showing a run history of Daily Incremental and Weekly Full Refresh jobs in the Prod environment, with most runs successful and one failed
dbt Cloud · run history

Daily Incremental jobs run on a schedule against Prod. A Weekly Full Refresh keeps the snapshots honest. Failures and deprecation warnings are surfaced where an on-call engineer actually looks — not buried in logs.

dbt Cloud Environments showing two configured environments: Dev and Prod
dbt Cloud · Dev + Prod environments

Separate environments for development and production — different schemas, different credentials, different schedules. The setup most working analytics teams use.

The build path

Twenty-five guided steps, from empty repo to deployed dashboard.

Each step is a short video walkthrough with the code you write in the dbt Cloud IDE. Built to be done over two or three weekends, or stretched across a month.

  1. 01

    Capstone Intro

    Walkthrough of the brief, the dataset, and the final deliverable.

    Free preview
  2. 02

    Google Account Creation

    Spin up a Google Cloud account; understand the billing posture.

    Course
  3. 03

    GitHub Repo Creation

    Initialize a public repo for the project; set the README scaffold.

    Course
  4. 04

    BigQuery + Service Account

    Create the project, dataset, and a service account for dbt Cloud.

    Course
  5. 05

    dbt Cloud Initial Setup

    Connect dbt Cloud to BigQuery; configure the warehouse adapter.

    Course
  6. 06

    dbt Cloud GitHub Connection

    Wire dbt Cloud to the GitHub repo for IDE + scheduled jobs.

    Course
  7. 07

    dbt Project Initialization

    First commit; `dbt_project.yml` configured for staging / intermediate / mart layers.

    Course
  8. 08

    dbt Project + packages.yml

    Add packages.yml; install dbt_utils and other ecosystem packages.

    Course
  9. 09

    dbt Seed Files (pt 1 + pt 2)

    Load the source CSVs as seeds; document each one in schema YAML.

    Course
  10. 10

    dbt Macros

    First macro: a reusable helper; understand when macros belong in models vs analyses.

    Course
  11. 11

    Staging Orders / Order Items / Customers / Adspend

    One staging model per source table — clean column names, types, and units.

    Course
  12. 12

    dbt Snapshots (SCD2)

    Snapshot customers as a Type 2 slowly-changing dimension.

    Course
  13. 13

    Intermediate Order Items Enriched

    Join staging tables into a denormalized intermediate model.

    Course
  14. 14

    Intermediate ROAS

    Combine marketing spend and revenue to compute return on ad spend by channel.

    Course
  15. 15

    Mart ROAS

    Final ROAS mart — the table that powers the marketing dashboard.

    Course
  16. 16

    Mart Order Item Customers

    Customer-grain mart with order totals, latest order date, lifetime value.

    Course
  17. 17

    Dim Customers

    Customer dimension with SCD2 fields exposed to BI.

    Course
  18. 18

    dbt Incremental

    Convert one mart to incremental materialization; understand the trade-offs.

    Course
  19. 19

    dbt Tests

    Generic + singular tests on PKs, FKs, accepted values, and business rules.

    Course
  20. 20

    dbt Orchestration

    Schedule Daily Incremental + Weekly Full Refresh jobs in dbt Cloud.

    Course
  21. 21

    md Files + Advanced Configurations

    doc blocks, README polish, and a `dbt docs generate` site.

    Course
  22. 22

    Looker + Capstone Closing

    Connect Looker Studio to BigQuery; build the two-page dashboard.

    Course
In an interview

What this project proves you can do.

  • End-to-end ownership of a data product — from raw CSVs to a stakeholder-facing dashboard.
  • Production dbt patterns: staging → intermediate → mart layering, snapshots, incremental models, tests.
  • Real warehouse work on BigQuery, not toy SQLite or local Postgres.
  • dbt Cloud orchestration with separate Dev and Prod environments and scheduled jobs.
  • Git hygiene: branches, PRs, a real commit history, a README a hiring manager can read.
  • BI fluency: Looker Studio connected to the marts, with the metric layer designed in dbt.

Build it.

The capstone ships with Analytics Engineering Mastery. One payment, lifetime access, every future update included. 30-day refund if it isn't for you.

See the full curriculum →