<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Chafiq Madkour — Writing</title>
  <link>https://chafiqmadkour.com/en/writing/</link>
  <atom:link href="https://chafiqmadkour.com/rss-en.xml" rel="self" type="application/rss+xml"/>
  <description>Technical essays and notes on Spark, Databricks, orchestration and data quality.</description>
  <language>en-US</language>
  <lastBuildDate>Wed, 12 Aug 2026 09:00:00 +0000</lastBuildDate>
  <item>
    <title>Oozie → Airflow: what does not translate</title>
    <link>https://chafiqmadkour.com/en/writing/oozie-vers-airflow.html</link>
    <guid isPermaLink="true">https://chafiqmadkour.com/en/writing/oozie-vers-airflow.html</guid>
    <pubDate>Wed, 12 Aug 2026 09:00:00 +0000</pubDate>
    <category>Orchestration</category>
    <description>An Oozie coordinator waits for data, an Airflow DAG fires on a clock: the whole migration sits in that gap.</description>
  </item>
  <item>
    <title>Spark 3 and old dates: the proleptic calendar trap</title>
    <link>https://chafiqmadkour.com/en/writing/spark3-dates-anciennes.html</link>
    <guid isPermaLink="true">https://chafiqmadkour.com/en/writing/spark3-dates-anciennes.html</guid>
    <pubDate>Tue, 28 Jul 2026 09:00:00 +0000</pubDate>
    <category>Spark</category>
    <description>Spark 3 changed calendar: on old dates the same code returns a different value without raising an error.</description>
  </item>
  <item>
    <title>A row set aside in a regulatory filing is an under-declaration</title>
    <link>https://chafiqmadkour.com/en/writing/ligne-ecartee-sous-declaration.html</link>
    <guid isPermaLink="true">https://chafiqmadkour.com/en/writing/ligne-ecartee-sous-declaration.html</guid>
    <pubDate>Tue, 14 Jul 2026 09:00:00 +0000</pubDate>
    <category>Data quality</category>
    <description>In a regulatory chain, an inner join does not clean the data: it removes rows you were required to report.</description>
  </item>
  <item>
    <title>AQE, DPP, skew join: what Spark 3 really fixes</title>
    <link>https://chafiqmadkour.com/en/writing/aqe-dpp-skew-join.html</link>
    <guid isPermaLink="true">https://chafiqmadkour.com/en/writing/aqe-dpp-skew-join.html</guid>
    <pubDate>Thu, 18 Jun 2026 09:00:00 +0000</pubDate>
    <category>Spark</category>
    <description>AQE buys back bad estimates, not bad modelling: what it does, under which conditions, and what remains to rewrite.</description>
  </item>
  <item>
    <title>Java 8 → 17 under Spark: the list of surprises</title>
    <link>https://chafiqmadkour.com/en/writing/java8-java17-spark.html</link>
    <guid isPermaLink="true">https://chafiqmadkour.com/en/writing/java8-java17-spark.html</guid>
    <pubDate>Wed, 10 Jun 2026 09:00:00 +0000</pubDate>
    <category>Platform</category>
    <description>Moving a Spark job from Java 8 to 17: the module system, the garbage collector, and the surprises that appear at runtime.</description>
  </item>
  <item>
    <title>Introducing TDD in a team that has never done it</title>
    <link>https://chafiqmadkour.com/en/writing/introduire-tdd-equipe.html</link>
    <guid isPermaLink="true">https://chafiqmadkour.com/en/writing/introduire-tdd-equipe.html</guid>
    <pubDate>Fri, 22 May 2026 09:00:00 +0000</pubDate>
    <category>Method</category>
    <description>Going from 0 to 95 % coverage: start by pinning existing behaviour rather than by asking for tests.</description>
  </item>
  <item>
    <title>VaR: the shape of the computation comes before the optimisation</title>
    <link>https://chafiqmadkour.com/en/writing/var-forme-du-calcul.html</link>
    <guid isPermaLink="true">https://chafiqmadkour.com/en/writing/var-forme-du-calcul.html</guid>
    <pubDate>Thu, 14 May 2026 09:00:00 +0000</pubDate>
    <category>Market finance</category>
    <description>On a VaR engine the volume is not what you read but what you generate: where the cost actually sits.</description>
  </item>
  <item>
    <title>Building a payments lakehouse alone: what it forces you to settle</title>
    <link>https://chafiqmadkour.com/en/writing/lakehouse-paiement-seul.html</link>
    <guid isPermaLink="true">https://chafiqmadkour.com/en/writing/lakehouse-paiement-seul.html</guid>
    <pubDate>Thu, 16 Apr 2026 09:00:00 +0000</pubDate>
    <category>Architecture</category>
    <description>Building a payments and fraud lakehouse alone: the architecture decisions that held, and why.</description>
  </item>
</channel>
</rss>
