<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Imad Bouzkraoui — Writing</title><description>Notes on data engineering: pipelines, data quality, dbt, Airflow and the lessons learned building them.</description><link>https://imadbouzkraoui.com/</link><language>en</language><item><title>SCD Type 2 with dbt snapshots, explained with Airbnb data</title><link>https://imadbouzkraoui.com/blog/scd-type-2-dbt-snapshots/</link><guid isPermaLink="true">https://imadbouzkraoui.com/blog/scd-type-2-dbt-snapshots/</guid><description>How dbt snapshots keep the full history of changing records — timestamp vs check strategies, the columns dbt adds, and how to query a table as it was on any date.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>dbt</category><category>snowflake</category><category>data-modeling</category><category>analytics-engineering</category></item><item><title>Rules aren’t enough: adding ML to data quality checks</title><link>https://imadbouzkraoui.com/blog/rules-are-not-enough-ml-data-quality/</link><guid isPermaLink="true">https://imadbouzkraoui.com/blog/rules-are-not-enough-ml-data-quality/</guid><description>Hard-coded quality rules catch the problems you anticipated. Here is how I layer ML anomaly classification on top — without drowning people in alerts.</description><pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate><category>data-quality</category><category>machine-learning</category><category>kafka</category><category>governance</category></item></channel></rss>