Data Warehouse Migration Planning That Won’t Stall
A practitioner’s program for migrating Redshift/Postgres to Snowflake or BigQuery—inventory, SQL translation, parallel-run reconciliation, cutover, and decommission.
Practical dbt writing from production engagements: modeling patterns, incremental strategies, testing, CI, and the refactors that cut runtimes.
A practitioner’s program for migrating Redshift/Postgres to Snowflake or BigQuery—inventory, SQL translation, parallel-run reconciliation, cutover, and decommission.
Triage and fix slow queries on Snowflake and BigQuery. Read profiles, prune data, control joins, avoid spill, and rewrite windows—backed by production patterns.
A practitioner’s guide to running dbt from Airflow with model-level visibility. Compare Bash, dbt Cloud API, Cosmos, and Kubernetes—with real code and trade-offs.
When should you split one dbt repo into many? Concrete signals, what breaks in production, and a safe migration path—plus CI, contracts, and ownership.
A decision framework for dbt materializations that holds up in production: cost math, when views beat tables, incremental pitfalls, ephemeral tradeoffs, and safe swaps.
A complete dbt CI/CD pipeline that builds only what changed, isolates writes in a temporary schema, lints first, and blocks bad merges—plus real GitHub Actions YAML.
Seat vs. consumption costs, the real trade‑offs with self‑hosting, and a break‑even model you can plug your own numbers into—no fluff, just operator detail.
Inherited a 600-model repo nobody understands? Here’s the operator’s playbook to refactor legacy SQL in dbt safely, prove parity, and keep BI stable.
A practitioner’s guide to dbt incremental models: when to use them, how to configure them, and how to avoid the production failures teams learn the hard way.
A practitioner’s playbook to move from dbt-core on Airflow/cron to dbt Cloud with zero surprises: cost, fit, mapping, Slim CI, parity, cutover, and rollback.
A practitioner’s guide to Snowflake cost optimization: attribute spend, fix warehouse settings, prune scans with clustering/MVs, and prevent regressions.
If your dbt run is slow, start with the critical path: run_results.json, model timing, and the DAG’s longest chain. Then apply the seven fixes that actually pay off.
We maintain a small client roster on purpose. If we're the wrong fit, we'll say so — and usually we know somebody who isn't.