<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Luc Joosten — Writing</title>
    <link>https://lucjoosten.nl/writing</link>
    <description>Notes on AI-assisted engineering, DevOps, and keeping software honest after the demo.</description>
    <item>
      <title>Fabric integrations need a boundary</title>
      <link>https://lucjoosten.nl/writing/fabric-gateway-contract</link>
      <guid>https://lucjoosten.nl/writing/fabric-gateway-contract</guid>
      <pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate>
      <description>Direct consumer-to-Fabric integrations make every app understand provider-specific limits, identities, and job semantics. I am designing a gateway so consumers can depend on one async contract instead.</description>
    </item>
    <item>
      <title>The useful part of a Fabric gateway is coordination</title>
      <link>https://lucjoosten.nl/writing/fabric-gateway-load-bearing-mechanics</link>
      <guid>https://lucjoosten.nl/writing/fabric-gateway-load-bearing-mechanics</guid>
      <pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate>
      <description>An API wrapper does not solve Fabric throttling. The hard value is shared polling, capacity-aware backoff, fair admission, and reliable fan-out across consumers.</description>
    </item>
    <item>
      <title>Experimental is a status, not a mood</title>
      <link>https://lucjoosten.nl/writing/experimental-is-a-status</link>
      <guid>https://lucjoosten.nl/writing/experimental-is-a-status</guid>
      <pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate>
      <description>I keep unfinished systems on the public site. The useful part is labeling them so a visitor is not sold a product that is still a design doc.</description>
    </item>
    <item>
      <title>A failing test is the incident, not the afterthought</title>
      <link>https://lucjoosten.nl/writing/reproduction-before-patch</link>
      <guid>https://lucjoosten.nl/writing/reproduction-before-patch</guid>
      <pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate>
      <description>Autofix demos start with a generated patch. I want the opposite gate: reconstruct the crash as a test that fails on current code, then you may propose a fix.</description>
    </item>
    <item>
      <title>The agent should propose, not assume</title>
      <link>https://lucjoosten.nl/writing/agents-propose-not-assume</link>
      <guid>https://lucjoosten.nl/writing/agents-propose-not-assume</guid>
      <pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate>
      <description>Permissionless agents look fast in a demo. In a real repo they spend your week on silent side effects. Proposal-first is slower in the hour and faster in the week.</description>
    </item>
    <item>
      <title>Treat the model like a flaky HTTP dependency</title>
      <link>https://lucjoosten.nl/writing/models-are-dependencies</link>
      <guid>https://lucjoosten.nl/writing/models-are-dependencies</guid>
      <pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate>
      <description>An LLM is not a personality in your app. It is a nondeterministic service with a worse SLO than Postgres. Design the boundary that way.</description>
    </item>
    <item>
      <title>RAG is a retrieval problem wearing a chatbot costume</title>
      <link>https://lucjoosten.nl/writing/rag-is-not-a-chatbot</link>
      <guid>https://lucjoosten.nl/writing/rag-is-not-a-chatbot</guid>
      <pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate>
      <description>The chat UI is the easy part. The hard part is what you retrieve, what you refuse to retrieve, and how you prove the answer came from somewhere.</description>
    </item>
    <item>
      <title>Two visual systems, one content model</title>
      <link>https://lucjoosten.nl/writing/two-themes-one-content</link>
      <guid>https://lucjoosten.nl/writing/two-themes-one-content</guid>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <description>Builder and editorial on this site share facts, routes, and DuckDB. The failure mode is forking pages per theme. The working model is tokens plus a few layout variants.</description>
    </item>
    <item>
      <title>If it is not deployable, it is not done</title>
      <link>https://lucjoosten.nl/writing/done-means-it-deploys</link>
      <guid>https://lucjoosten.nl/writing/done-means-it-deploys</guid>
      <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
      <description>Demos and local happy paths are not delivery. I count work finished when someone else can run it, see it fail, and know who owns the failure.</description>
    </item>
  </channel>
</rss>
