<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Engineering Log | Byteherder</title>
  <link>https://byteherder.com/log/</link>
  <description>Notes from Byteherder on platform engineering, secure delivery and the data systems in between. Written from the work, not from the roadmap.</description>
  <language>en</language>
  <atom:link href="https://byteherder.com/log/feed.xml" rel="self" type="application/rss+xml"/>
  <item>
    <title>Fourteen months behind, on purpose</title>
    <link>https://byteherder.com/log/fourteen-months-behind-on-purpose/</link>
    <guid isPermaLink="true">https://byteherder.com/log/fourteen-months-behind-on-purpose/</guid>
    <pubDate>Tue, 15 Sep 2026 09:00:00 GMT</pubDate>
    <description>A cluster sat two minor versions back because nobody had measured the upgrade risk. Unmeasured risk gets treated as infinite, and infinite risk never gets scheduled.</description>
    <category>kubernetes</category>
    <category>upgrades</category>
    <category>operations</category>
    <category>risk</category>
  </item>
  <item>
    <title>Provenance is the product</title>
    <link>https://byteherder.com/log/provenance-is-the-product/</link>
    <guid isPermaLink="true">https://byteherder.com/log/provenance-is-the-product/</guid>
    <pubDate>Thu, 20 Aug 2026 09:00:00 GMT</pubDate>
    <description>Two dashboards, one metric, two numbers. Working out which one was right took longer than building either of them, and the answer was that neither could be checked.</description>
    <category>data</category>
    <category>bi</category>
    <category>osint</category>
    <category>provenance</category>
  </item>
  <item>
    <title>The plus in the secret</title>
    <link>https://byteherder.com/log/the-plus-in-the-secret/</link>
    <guid isPermaLink="true">https://byteherder.com/log/the-plus-in-the-secret/</guid>
    <pubDate>Wed, 29 Jul 2026 09:00:00 GMT</pubDate>
    <description>Keycloak returned unauthorized_client for a client secret that was byte-identical on both sides. The character causing it was a plus sign.</description>
    <category>oidc</category>
    <category>keycloak</category>
    <category>debugging</category>
    <category>secrets</category>
  </item>
  <item>
    <title>A gate that cannot fail is a report</title>
    <link>https://byteherder.com/log/a-gate-that-cannot-fail-is-a-report/</link>
    <guid isPermaLink="true">https://byteherder.com/log/a-gate-that-cannot-fail-is-a-report/</guid>
    <pubDate>Thu, 02 Jul 2026 09:00:00 GMT</pubDate>
    <description>Every pipeline I inherit has a security scanning stage. Almost none of them can stop a release. That is not a tooling problem.</description>
    <category>devsecops</category>
    <category>supply-chain</category>
    <category>ci-cd</category>
  </item>
  <item>
    <title>Publish the interface</title>
    <link>https://byteherder.com/log/publish-the-interface/</link>
    <guid isPermaLink="true">https://byteherder.com/log/publish-the-interface/</guid>
    <pubDate>Thu, 11 Jun 2026 09:00:00 GMT</pubDate>
    <description>A platform team without a written-down interface is a ticket queue with a roadmap attached. Here is what writing it down actually looks like.</description>
    <category>kubernetes</category>
    <category>platform-engineering</category>
    <category>operations</category>
  </item>
</channel>
</rss>
