<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Data Engineering on Damien GOEHRIG</title><link>https://damiengoehrig.ca/categories/data-engineering/</link><description>Recent content in Data Engineering on Damien GOEHRIG</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2026 Damien GOEHRIG</copyright><lastBuildDate>Sun, 05 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://damiengoehrig.ca/categories/data-engineering/index.xml" rel="self" type="application/rss+xml"/><item><title>dbt-guard: My First Python Package (and Why I Needed It)</title><link>https://damiengoehrig.ca/blog/dbt-guard-package-python/</link><pubDate>Sun, 05 Apr 2026 00:00:00 +0000</pubDate><guid>https://damiengoehrig.ca/blog/dbt-guard-package-python/</guid><description>&lt;p&gt;Publishing a package on PyPI. It&amp;rsquo;s one of those things that looks intimidating from the outside, but turns out to be a matter of good timing and a precise enough problem to solve.&lt;/p&gt;</description></item><item><title>dbt: Tests in YAML, or How to Stop Praying Your Data Is Correct</title><link>https://damiengoehrig.ca/blog/dbt-tests-constraints-yml/</link><pubDate>Fri, 27 Feb 2026 00:00:00 +0000</pubDate><guid>https://damiengoehrig.ca/blog/dbt-tests-constraints-yml/</guid><description>&lt;p&gt;You know the feeling: a report spitting out weird numbers, an analyst telling you &amp;ldquo;the totals don&amp;rsquo;t match,&amp;rdquo; and you spend your day tracing back up the chain to find where the data went wrong. Often, the problem could have been detected automatically if someone had put a test somewhere.&lt;/p&gt;</description></item><item><title>Documenting a Source Database with Multi-Agent LLMs</title><link>https://damiengoehrig.ca/blog/dbt-document-sources-llm-multi-agent/</link><pubDate>Fri, 06 Feb 2026 00:00:00 +0000</pubDate><guid>https://damiengoehrig.ca/blog/dbt-document-sources-llm-multi-agent/</guid><description>&lt;p&gt;Documenting columns in a source database is the kind of task nobody wants to do. You have an operational system with hundreds of tables, thousands of columns, and documentation ranging from &amp;ldquo;nonexistent&amp;rdquo; to &amp;ldquo;a 2017 comment that says &lt;code&gt;TODO: document this&lt;/code&gt;.&amp;rdquo;&lt;/p&gt;</description></item><item><title>dbt: When Your YAML Files Become Your Data Governance</title><link>https://damiengoehrig.ca/blog/dbt-documentation-governance-yml/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><guid>https://damiengoehrig.ca/blog/dbt-documentation-governance-yml/</guid><description>&lt;p&gt;Documentation is the thing nobody wants to do. Especially in data. You have hundreds of columns across dozens of tables, and someone asks &amp;ldquo;what&amp;rsquo;s the &lt;code&gt;status&lt;/code&gt; field in the &lt;code&gt;orders&lt;/code&gt; table?&amp;rdquo; And the honest answer is often &amp;ldquo;uh&amp;hellip; an enum I think that probably means X.&amp;rdquo;&lt;/p&gt;</description></item><item><title>dbt: Treating Your Data Transformations Like Infrastructure</title><link>https://damiengoehrig.ca/blog/dbt-data-infrastructure-as-code/</link><pubDate>Fri, 26 Dec 2025 00:00:00 +0000</pubDate><guid>https://damiengoehrig.ca/blog/dbt-data-infrastructure-as-code/</guid><description>&lt;p&gt;Snowflake is fundamentally SQL-first. That&amp;rsquo;s its strength: everything is driven by SQL, from grants to object creation to transformations. Infrastructure, we&amp;rsquo;ve seen how to tame it with Terraform in &lt;a
href="https://damiengoehrig.ca/blog/snowflake-terraform-infrastructure-as-code/"&gt;the previous article&lt;/a&gt;. But data transformations fall into a blind spot. SQL scripts scattered everywhere, no tests, no serious versioning, one colleague who knows what order to run things in.&lt;/p&gt;</description></item><item><title>Snowflake + Terraform: Stop Managing Your Data Infrastructure in SQL</title><link>https://damiengoehrig.ca/blog/snowflake-terraform-infrastructure-as-code/</link><pubDate>Fri, 05 Dec 2025 00:00:00 +0000</pubDate><guid>https://damiengoehrig.ca/blog/snowflake-terraform-infrastructure-as-code/</guid><description>&lt;p&gt;There&amp;rsquo;s a moment in every data engineer&amp;rsquo;s life when you find yourself staring at a 300-line SQL file that creates roles, grants, warehouses, and you wonder how you got here. This is my story.&lt;/p&gt;</description></item></channel></rss>