<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Calvin Brown</title>
        <link>https://blog.calvinbrown.dev</link>
        <description>Notes on infrastructure, security, and the tools I build to avoid doing things twice.</description>
        <language>en-us</language>
        <lastBuildDate>Mon, 03 Aug 2026 00:00:00 GMT</lastBuildDate>
        <atom:link href="https://blog.calvinbrown.dev/feed.xml" rel="self" type="application/rss+xml"/>
        <item>
            <title>How this blog works</title>
            <link>https://blog.calvinbrown.dev/posts/how-this-blog-works/</link>
            <guid isPermaLink="true">https://blog.calvinbrown.dev/posts/how-this-blog-works/</guid>
            <pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate>
            <description>A Markdown file, a push, and about nine seconds of CI. No database, no CMS, no framework.</description>
            <category>meta</category>
            <category>static-sites</category>
        </item>
        <item>
            <title>Kubernetes Secrets are not encrypted</title>
            <link>https://blog.calvinbrown.dev/posts/kubernetes-secrets-are-not-encrypted/</link>
            <guid isPermaLink="true">https://blog.calvinbrown.dev/posts/kubernetes-secrets-are-not-encrypted/</guid>
            <pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate>
            <description>They are base64. Everyone knows this and everyone forgets it the moment a Secret shows up in a code review.</description>
            <category>kubernetes</category>
            <category>security</category>
        </item>
    </channel>
</rss>
