<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>hyperbola :: blog</title>
        <link>https://hyperbo.la/</link>
        <description>Ryan Lopopolo’s blog posts</description>
        <lastBuildDate>Mon, 30 Mar 2026 12:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en-US</language>
        <item>
            <title><![CDATA[A Lazy Prompt Turned Into a RustSec Advisory]]></title>
            <link>https://hyperbo.la/w/lazy-prompt-rustsec/</link>
            <guid isPermaLink="false">hyperbola:post:lazy-prompt-rustsec</guid>
            <pubDate>Mon, 30 Mar 2026 12:00:00 GMT</pubDate>
            <description><![CDATA[A one-line red-team prompt sent Codex through the full security workflow on `intaglio`: prove impact, land the fix, prep the release, and publish a RustSec advisory.]]></description>
        </item>
        <item>
            <title><![CDATA[Agent Utilization Is the New Performance Ceiling]]></title>
            <link>https://hyperbo.la/w/agents-agents-agents/</link>
            <guid isPermaLink="false">hyperbola:post:agents-agents-agents</guid>
            <pubDate>Fri, 13 Mar 2026 12:00:00 GMT</pubDate>
            <description><![CDATA[Reasoning models scale with tokens. The ceiling is utilization: how much of the software lifecycle agents are allowed to observe and operate.]]></description>
        </item>
        <item>
            <title><![CDATA[Stop Treating Code as the Artifact]]></title>
            <link>https://hyperbo.la/w/code-is-not-the-artifact/</link>
            <guid isPermaLink="false">hyperbola:post:code-is-not-the-artifact</guid>
            <pubDate>Fri, 13 Mar 2026 12:00:00 GMT</pubDate>
            <description><![CDATA[When agents write most of the code, the durable artifact is no longer the source file. It is the repo-owned spec, guardrails, and operator surface that determine what code is allowed to exist.]]></description>
        </item>
        <item>
            <title><![CDATA[Software Work Is No Longer Scheduled]]></title>
            <link>https://hyperbo.la/w/software-work-not-scheduled/</link>
            <guid isPermaLink="false">hyperbola:post:software-work-not-scheduled</guid>
            <pubDate>Fri, 13 Mar 2026 12:00:00 GMT</pubDate>
            <description><![CDATA[Full Japanese support in an alpha app, instrumentation, dashboards, UX polish, and security hardening used to be roadmap work. Now they are background tasks.]]></description>
        </item>
        <item>
            <title><![CDATA[The Production Function Changed]]></title>
            <link>https://hyperbo.la/w/production-function-changed/</link>
            <guid isPermaLink="false">hyperbola:post:production-function-changed</guid>
            <pubDate>Fri, 13 Mar 2026 12:00:00 GMT</pubDate>
            <description><![CDATA[Turning on `no-await-in-loop`, fixing 600 violations in one PR, and demanding videos, screenshots, and logs from Codex makes the change plain: implementation is cheap; specifying invariants and proof is the work.]]></description>
        </item>
        <item>
            <title><![CDATA[Harness Engineering the Blog Build (Again)]]></title>
            <link>https://hyperbo.la/w/harness-engineering-the-blog-build/</link>
            <guid isPermaLink="false">hyperbola:post:harness-engineering-the-blog-build</guid>
            <pubDate>Tue, 17 Feb 2026 12:00:00 GMT</pubDate>
            <description><![CDATA[@frantic asked for RSS, so I harness engineered the blog build (again): Vite-native SSR and assets, MDX posts, typed React composition, and static output that still deploys to GitHub Pages.]]></description>
        </item>
        <item>
            <title><![CDATA[Winding Down Artichoke Ruby]]></title>
            <link>https://hyperbo.la/w/winding-down-artichoke-ruby/</link>
            <guid isPermaLink="false">hyperbola:post:winding-down-artichoke-ruby</guid>
            <pubDate>Sun, 15 Feb 2026 12:00:00 GMT</pubDate>
            <description><![CDATA[After six years of building a Ruby implementation in Rust, it’s time to archive Artichoke. This is a look back at why it started, what we built, and why I’m letting it rest.]]></description>
        </item>
        <item>
            <title><![CDATA[It’s Not Codex, It’s Codex/GPT-5-Codex]]></title>
            <link>https://hyperbo.la/w/codex-copypasta/</link>
            <guid isPermaLink="false">hyperbola:post:codex-copypasta</guid>
            <pubDate>Sat, 13 Dec 2025 12:00:00 GMT</pubDate>
            <description><![CDATA[I’d just like to interject for a moment.]]></description>
        </item>
        <item>
            <title><![CDATA[MCP Solves Tool Discovery for LLMs]]></title>
            <link>https://hyperbo.la/w/tool-discovery/</link>
            <guid isPermaLink="false">hyperbola:post:tool-discovery</guid>
            <pubDate>Sun, 10 Aug 2025 12:00:00 GMT</pubDate>
            <description><![CDATA[Coding agents fail on tools they can’t see. MCP exposes a model-readable catalog—names, schemas, and prompts—so agents can discover, understand, and safely call your tools on the first try.]]></description>
        </item>
        <item>
            <title><![CDATA[Ruby Enumerable: Manifest Destiny]]></title>
            <link>https://hyperbo.la/w/iterator-destiny/</link>
            <guid isPermaLink="false">hyperbola:post:iterator-destiny</guid>
            <pubDate>Sun, 10 Aug 2025 12:00:00 GMT</pubDate>
            <description><![CDATA[Ruby’s Enumerable mixin set the gold standard for elegant, composable iteration nearly three decades ago. With ECMAScript 2025’s new Iterator type, JavaScript is finally catching up—bringing this powerful pattern closer to becoming a universal language feature. Iterator type continues its expansion across languages.]]></description>
        </item>
        <item>
            <title><![CDATA[Service meshes are organization tools, not technical ones]]></title>
            <link>https://hyperbo.la/w/service-mesh/</link>
            <guid isPermaLink="false">hyperbola:post:service-mesh</guid>
            <pubDate>Sun, 03 Aug 2025 12:00:00 GMT</pubDate>
            <description><![CDATA[Service meshes are less about tech and more about enforcing org-wide defaults without slowing teams down.]]></description>
        </item>
        <item>
            <title><![CDATA[Debazeling the blog]]></title>
            <link>https://hyperbo.la/w/debazeling/</link>
            <guid isPermaLink="false">hyperbola:post:debazeling</guid>
            <pubDate>Sun, 03 Aug 2025 12:00:00 GMT</pubDate>
            <description><![CDATA[What is the purpose of a blog? Is it to write? to build and deploy the blog?]]></description>
        </item>
        <item>
            <title><![CDATA[LaTeX Escapism]]></title>
            <link>https://hyperbo.la/w/LaTeX-escapism/</link>
            <guid isPermaLink="false">hyperbola:post:LaTeX-escapism</guid>
            <pubDate>Sat, 26 Aug 2023 12:00:00 GMT</pubDate>
            <description><![CDATA[My résumé, written in LaTeX, is excessively over-engineered and 100% the way I want it. 🤪]]></description>
        </item>
        <item>
            <title><![CDATA[Do the Simplest Thing That Could Possibly Work]]></title>
            <link>https://hyperbo.la/w/do-the-simplest-thing/</link>
            <guid isPermaLink="false">hyperbola:post:do-the-simplest-thing</guid>
            <pubDate>Fri, 25 Aug 2023 12:00:00 GMT</pubDate>
            <description><![CDATA[To build iteratively and shed complexity, do the simplest thing that could possibly work.]]></description>
        </item>
        <item>
            <title><![CDATA[Scaling Myself by Letting My Team Fail]]></title>
            <link>https://hyperbo.la/w/scaling-impact-senior-staff/</link>
            <guid isPermaLink="false">hyperbola:post:scaling-impact-senior-staff</guid>
            <pubDate>Thu, 27 Jul 2023 12:00:00 GMT</pubDate>
            <description><![CDATA[As a Staff+ engineer, I’ve honed my focus by distinguishing projects where failure is acceptable, creating space for my teams to learn and grow, versus where it is not, requiring more direct involvement. Using this technique to delegate has further scaled my impact.]]></description>
        </item>
        <item>
            <title><![CDATA[Feedback Windows]]></title>
            <link>https://hyperbo.la/w/feedback-windows/</link>
            <guid isPermaLink="false">hyperbola:post:feedback-windows</guid>
            <pubDate>Wed, 14 Jun 2023 12:00:00 GMT</pubDate>
            <description><![CDATA[It is not the case that all proposals are open to all feedback from all stakeholders at every point of their lifecycle.]]></description>
        </item>
        <item>
            <title><![CDATA[I Wrote 4,000 Lines of Code with ChatGPT in a Weekend]]></title>
            <link>https://hyperbo.la/w/chatgpt-4000/</link>
            <guid isPermaLink="false">hyperbola:post:chatgpt-4000</guid>
            <pubDate>Tue, 13 Jun 2023 12:00:00 GMT</pubDate>
            <description><![CDATA[Pair programming with ChatGPT on Artichoke Ruby, writing a lot of Rust.]]></description>
        </item>
        <item>
            <title><![CDATA[Debugging an mruby Heap Corruption in Artichoke with Pernosco]]></title>
            <link>https://hyperbo.la/w/artichoke-pernosco/</link>
            <guid isPermaLink="false">hyperbola:post:artichoke-pernosco</guid>
            <pubDate>Sun, 19 Sep 2021 12:00:00 GMT</pubDate>
            <description><![CDATA[Pernosco is a hosted omniscient debugger that makes debugging complicated bugs tractable.]]></description>
        </item>
        <item>
            <title><![CDATA[Source-level Polymorphism in Rust]]></title>
            <link>https://hyperbo.la/w/source-level-polymorphism/</link>
            <guid isPermaLink="false">hyperbola:post:source-level-polymorphism</guid>
            <pubDate>Thu, 24 Dec 2020 12:00:00 GMT</pubDate>
            <description><![CDATA[Interface compatibility does not require implementing an interface or a trait. Use compile-time flags and source-compatible APIs to swap out implementations.]]></description>
        </item>
        <item>
            <title><![CDATA[Communicating with the Synthesis Step]]></title>
            <link>https://hyperbo.la/w/synthesis/</link>
            <guid isPermaLink="false">hyperbola:post:synthesis</guid>
            <pubDate>Tue, 20 Aug 2019 12:00:00 GMT</pubDate>
            <description><![CDATA[Help your stakeholders by doing the hard work of distilling why the information you're sharing is important.]]></description>
        </item>
        <item>
            <title><![CDATA[Cactus Harvesting: Cycle-Aware Reference Counting in Rust]]></title>
            <link>https://hyperbo.la/w/cactus-harvesting/</link>
            <guid isPermaLink="false">hyperbola:post:cactus-harvesting</guid>
            <pubDate>Mon, 15 Jul 2019 12:00:00 GMT</pubDate>
            <description><![CDATA[🌵 CactusRef lets you build cyclic data structures using strong references and knows how to deallocate unreachable cycles. You can use CactusRef to implement a doubly linked list. The CactusRef API is compatible with std::rc.]]></description>
        </item>
        <item>
            <title><![CDATA[The Conjoined Villages: Baarle-Hertog and Baarle-Nassau]]></title>
            <link>https://hyperbo.la/w/the-conjoined-villages/</link>
            <guid isPermaLink="false">hyperbola:post:the-conjoined-villages</guid>
            <pubDate>Sat, 29 Jun 2019 12:00:00 GMT</pubDate>
            <description><![CDATA[The border between Baarle-Hertog 🇧🇪 and Baarle-Nassau 🇳🇱 is one of the most complicated international borders in the world.]]></description>
        </item>
        <item>
            <title><![CDATA[Sprint Log, 2019-03-08]]></title>
            <link>https://hyperbo.la/w/sprint-log-2019-03-08/</link>
            <guid isPermaLink="false">hyperbola:post:sprint-log-2019-03-08</guid>
            <pubDate>Sat, 09 Mar 2019 12:00:00 GMT</pubDate>
            <description><![CDATA[What I did this sprint: Less raw code output, more broad impact.]]></description>
        </item>
        <item>
            <title><![CDATA[Senior Engineers Build Consensus]]></title>
            <link>https://hyperbo.la/w/nemawashi/</link>
            <guid isPermaLink="false">hyperbola:post:nemawashi</guid>
            <pubDate>Sun, 03 Mar 2019 12:00:00 GMT</pubDate>
            <description><![CDATA[To be an effective senior engineer, you need to convince others to help you execute.]]></description>
        </item>
        <item>
            <title><![CDATA[Reflections on Learning Rust By Building Punchtop]]></title>
            <link>https://hyperbo.la/w/reflections-on-learning-rust/</link>
            <guid isPermaLink="false">hyperbola:post:reflections-on-learning-rust</guid>
            <pubDate>Sun, 27 Jan 2019 12:00:00 GMT</pubDate>
            <description><![CDATA[To learn Rust, I implemented an audio game. There were some things I liked and some things I didn't. Some things were easy and some were hard. And there were plenty of libraries that were a joy to use.]]></description>
        </item>
        <item>
            <title><![CDATA[Social Coding 2018 Recap]]></title>
            <link>https://hyperbo.la/w/social-coding-2018/</link>
            <guid isPermaLink="false">hyperbola:post:social-coding-2018</guid>
            <pubDate>Fri, 28 Dec 2018 12:00:00 GMT</pubDate>
            <description><![CDATA[I contributed to open source more than I ever have in 2018; but there is a lot I can do to improve.]]></description>
        </item>
        <item>
            <title><![CDATA[Postmortem: 502s During Parameter Store Rollout]]></title>
            <link>https://hyperbo.la/w/secrets-in-parameter-store-postmortem/</link>
            <guid isPermaLink="false">hyperbola:post:secrets-in-parameter-store-postmortem</guid>
            <pubDate>Fri, 16 Nov 2018 12:00:00 GMT</pubDate>
            <description><![CDATA[Terraform misconfiguration of SSM PrivateLink endpoint completely brings down hyperbo.la.]]></description>
        </item>
        <item>
            <title><![CDATA[Blue-Green Deployments With Autoscaling Groups and Terraform]]></title>
            <link>https://hyperbo.la/w/terraform-blue-green/</link>
            <guid isPermaLink="false">hyperbola:post:terraform-blue-green</guid>
            <pubDate>Mon, 05 Nov 2018 12:00:00 GMT</pubDate>
            <description><![CDATA[Moving blue-green deployments into terraform-managed autoscaling groups makes rolling out new AMIs easier.]]></description>
        </item>
        <item>
            <title><![CDATA[AWS Is Your Org Chart]]></title>
            <link>https://hyperbo.la/w/aws-org-chart/</link>
            <guid isPermaLink="false">hyperbola:post:aws-org-chart</guid>
            <pubDate>Sat, 27 Oct 2018 12:00:00 GMT</pubDate>
            <description><![CDATA[Your AWS infrastructure is designed by your org chart. Alignment comes from increased communication and accountability.]]></description>
        </item>
        <item>
            <title><![CDATA[Productive Engineering–Finance Partnership]]></title>
            <link>https://hyperbo.la/w/engineering-finance-partnership/</link>
            <guid isPermaLink="false">hyperbola:post:engineering-finance-partnership</guid>
            <pubDate>Sat, 27 Oct 2018 12:00:00 GMT</pubDate>
            <description><![CDATA[A successful partnership between Engineering and Finance creates better business outcomes.]]></description>
        </item>
    </channel>
</rss>