Solutionsdbt + Streamlit
dbtSnowflakeStreamlitCI/CDData ModelingTestingAzure DevOpsGovernance

dbt Core Transformation Platform

Replaced ad-hoc SQL scripts with a version-controlled, tested, and documented transformation layer. Business analysts can now trust the data because every metric has a lineage trail and automated test coverage.

Problem Statement

Business Problem

Analysts were maintaining dozens of overlapping SQL views with no version control, no testing, and no documentation. The same metric was calculated differently in three different dashboards. Data trust was at an all-time low.

Technical Challenge

The transformation layer had no CI/CD, no automated testing, and no lineage tracking. Deploying a model change required manual execution and prayer. There was no separation between dev, staging, and production environments.

Architecture Flow

Source Layer

Step 1 of 5

dbt sources defined with freshness checks and schema documentation. Raw tables in Snowflake LANDING schema.

dbt sourcesYAMLSnowflake

Key Features

dbt profiles are parameterized by environment. Azure DevOps pipelines run dbt build on feature branches (dev), merge to main triggers staging, and a manual gate promotes to production. Each environment targets a separate Snowflake database.

Code ref:ivy_dataTransformation/deployment.yml

Operational Excellence

idempotency

dbt models are fully idempotent by design — incremental models use unique_key for safe re-runs.

retries

Azure DevOps pipeline retries on transient Snowflake connection errors. dbt --retry-all-errors flag enabled.

logging

dbt run results and test results captured as JSON artifacts in Azure DevOps for audit trail.

access Control

Separate Snowflake roles for dbt service account per environment. Analysts have read-only access to mart layer.

cicd

Azure DevOps: feature branch → dev build → PR → staging build → manual gate → production deploy.

environment Promotion

Strict branch strategy: feature/* → main → release tags. Each merge triggers the appropriate environment pipeline.

Code Highlights

dbt Deployment Pipeline
ivy_dataTransformation/deployment.yml

Azure DevOps pipeline for dbt build, test, and docs generation across all environments.

View
Streamlit Deploy Template
ivy_streamlit_apps/templates/deploy-streamlit-template.yml

Reusable Azure DevOps template for deploying Streamlit apps to Snowflake.

View
Streamlit Pipeline
ivy_streamlit_apps/azure-pipelines-streamlit.yml

Top-level pipeline that orchestrates multi-app Streamlit deployments.

View

Outcomes

100%
Model Test Coverage
Every mart model has not-null and unique key tests
< 8 min
Deployment Time
Full dbt build + test + deploy cycle
+40pts
Data Trust Score
Analyst survey before/after (internal NPS-style metric)
0
Duplicate Metric Definitions
Down from 3+ conflicting definitions per KPI

Demo Talk Track

3–5 Minute Version

"This is the dbt transformation platform I built on top of Snowflake. Let me give you the context first. When I joined, analysts were maintaining dozens of overlapping SQL views with no version control and no testing. The same metric — say, 'active policies' — was calculated differently in three different dashboards. Data trust was at an all-time low. My solution was to introduce dbt Core as the transformation layer. Here's what that looks like in practice. The architecture follows a strict layered approach: sources → staging → intermediate → marts. Each layer has a clear contract. Staging models are one-to-one with source tables — no business logic, just cleaning and type casting. Business logic lives in intermediate models. Mart models are the consumption layer for BI tools and Streamlit apps. Every model has automated tests — not-null, unique key, referential integrity. These run in CI before any merge is allowed. If a test fails, the deployment stops. For deployment, I built a multi-environment Azure DevOps pipeline. Feature branches deploy to dev, merge to main triggers staging, and a manual approval gate promotes to production. Each environment is a separate Snowflake database. The Streamlit apps are deployed directly on Snowflake — no external hosting. I built a reusable Azure DevOps template that packages and deploys any Streamlit app in under 5 minutes. The result: 100% test coverage on mart models, deployment time under 8 minutes, and — most importantly — analysts now trust the data because every metric has a lineage trail they can follow."

30–60 Second Version

"I built a dbt Core transformation platform on Snowflake with multi-environment CI/CD via Azure DevOps. The key outcomes were 100% automated test coverage on mart models, a reusable Streamlit deployment template, and eliminating conflicting metric definitions that had eroded data trust."

Interview Mapping

How this solution demonstrates enterprise data platform delivery values:

Curiosity

Researched and introduced dbt to an organization that had never used it, including building internal training materials.

Psychological Safety

Established a PR review process for dbt models that made it safe for junior analysts to contribute without fear of breaking production.

Extreme Ownership

Owned the full stack: dbt models, CI/CD pipelines, Streamlit apps, and analyst enablement.

Grit

Migrated 40+ existing SQL views to dbt models while maintaining zero downtime for downstream dashboards.