Staging environment
Hero image

Transform Your Data Stack with dbt

How to build a high-quality dbt project with proper documentation, tests, and reusable data models.

This course is no longer available.

Explore other courses

ConvertKit
Capital One

Course overview

Gain confidence in your ability to integrate dbt into your modern data stack.

Do you write a new query every time you need to answer a new business question? Do you find issues in your data when writing these queries but have no way to proactively find them? Do you find the same business logic coded over and over again with no lasting way to keep it consistent?


If your data stack...


- lacks standardization

- lacks organization

- lacks documentation and testing

- depends on a BI tool to store SQL and data models

- contains the same code in lots of different places

- gives minimal insight into data quality


...then this course is for you.


You will leave this course feeling confident that you can introduce (or refactor) dbt to create a data stack with minimal tech debt that will help you scale your team's data.


Requirements:


- proficiency in SQL

- proficiency in Git

- basic understanding of data transformation

- basic understanding of data warehouses



For those who want to leverage the powers of dbt.

01

You are a data analyst, data engineer, or other type of data professional who has heard about dbt but hasn't had the chance to learn it.

02

You are a beginner to intermediate-level data professional looking to add a new tool to your skillset.

03

You are ready to leverage your SQL knowledge and find a better way to transform and organize your data.

What you’ll get out of this course

Build a dbt project

  • Discover how dbt can help solve your data problems
  • Build a dbt project with an understanding of the different directories
  • Write a style guide outlining best practices in your project


Document your data following best practices

  • Identify the problems that dbt doc blocks can help solve and implement them in your project
  • Dissect a model's lineage and understand how to build models with this in mind
  • Simplify future debugging by implementing dbt exposures in your project

Define data quality tests using dbt packages

  • Implement freshness tests and dbt generic tests to your data sources
  • Integrate dbt packages into your project and use pre-built tests on your models

Write reusable data models and macros 

  • Identify differences between intermediate and core models
  • Refactor code to make it more reusable 
  • Write a macro that can be used and referenced in multiple scenarios 

Active learning and exercises with your data peers

  • Build your project alongside others in the data community
  • Connect with peers of all different experiences

What’s included

Madison Schott

Live sessions

Learn directly from Madison Schott in a real-time, interactive format.

Lifetime access

Go back to course content and recordings whenever you need to.

Community of peers

Stay accountable and share insights with like-minded professionals.

Certificate of completion

Share your new skills with your employer or on LinkedIn.

Maven Guarantee

This course is backed by the Maven Guarantee. Students are eligible for a full refund up until the halfway point of the course.

Course syllabus

16 lessons • 4 projects

Week 1

Jan 7—Jan 12

    Building a dbt Project

    What are the basic elements of a dbt project and why are they important?

    • 📄

      dbt's Superpower: Modularity

    • 📄

      What's a dbt Profile?

    • 📄

      The Role of dbt_project.yml

    • 📄

      The Different Directories of a dbt Project

    • 📄

      The Elements of a dbt Style Guide

    • ✍️

      Write your own dbt style guide

      Submit by Nov 16

    Documentation Best Practices

    dbt features to help you avoid the most common problems with data documentation

    • 📄

      Problems Solved by dbt Doc Blocks

    • 📄

      Lineage 101: Using it to Write Better Models

    • 📄

      Why Exposures Are Necessary

    • ✍️

      Add doc blocks and staging models to your dbt project

      Submit by Nov 16

Week 2

Jan 13—Jan 16

    Define data quality tests

    Apply tests to sources and models to help prevent downstream data fires and data quality issues

    • 📄

      How to Use dbt Generic Tests

    • 📄

      How to Define Freshness

    • 📄

      Top dbt Testing Packages

    • 📄

      Jinja Basics

    • 📄

      How to Write a Custom Test

    • ✍️

      Add tests to sources and models in your dbt project

      Submit by Nov 16

    Writing reusable data models and macros

    The same code should only ever be written once... write your code the dbt way by making it modular.

    • 📄

      Mart vs Intermediate Models: What is What?

    • 📄

      Refactoring Code to be Reusable

    • 📄

      How to Write a Reusable Macro

    • ✍️

      Refactor your code to make it reusable

      Submit by Nov 16

Meet your instructor

Madison Schott

Madison Schott

Senior Analytics Engineer and Technical Writer

Hi I'm Madison and I'll be your course instructor!


I was first introduced to dbt while working as a data engineer at Capital One. After first learning about dbt, I've been obsessed with the tool, as it inspired me to switch from data engineering to analytics engineering.


In my first few years as an analytics engineer, I built out an entire modern data stack at Winc from data warehouse to orchestration pipeline.

The biggest challenge here was refactoring SQL queries stored in a BI tool to be used in dbt. This caught me a lot about what not to do and how to build data models the right way.


Now I work at ConvertKit where I've helped build out our dbt project with best practices and reusable data models.


When I'm not solving data problems there, I'm most likely sharing what I've learned with the readers of my Learn Analytics Engineering newsletter.

Course schedule

3-5 hours per week

  • Mondays & Wednesdays

    7:00pm - 8:30pm EST

    Sessions will take place every Monday and Wednesday evening for 90 minutes, for 2 weeks.

  • May 13, 2024

    The first session of the course.

    • reading material
    • live session w/ hands-on project
  • May 15, 2024

    The second course session.

    • reading material
    • live session w/ hands-on project
  • May 20, 2024

    The third course session.

    • reading material
    • live session w/ hands-on project
  • May 22, 2024

    The last session of the course.

    • reading material
    • live session w/ hands-on project


Learning is better with cohorts

Learning is better with cohorts

Active hands-on learning

This course builds on live workshops and hands-on projects

Interactive and project-based

You’ll be interacting with other learners through breakout rooms and project teams

Learn with a cohort of peers

Join a community of like-minded people who want to learn and grow alongside you

Frequently Asked Questions

What people are saying

        What sets Madison apart is her approachable and relatable teaching style. Her explanations are always clear, concise, and to the point. Madison makes complex topics accessible even to those new to analytics engineering. Her ability to break down intricate concepts into digestible pieces is a gift.
Yordan Ivanov

Yordan Ivanov

Head of Data Engineering