<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Software Jutsu Articles</title>
    <link>https://www.softwarejutsu.com/articles</link>
    <description>Essays on software craft, engineering, and career</description>
    <language>en</language>
    <atom:link href="https://www.softwarejutsu.com/rss/articles.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Five Message Broker Patterns</title>
      <link>https://www.softwarejutsu.com/articles/five-message-broker-patterns</link>
      <description>I kept dropping names like Saga, CQRS, and Outbox in design reviews without being fully honest about which one solved what. A ByteByteGo infographic pushed me to stop faking it and draw each one from memory. These are the diagrams - and the use cases - that finally made them stick.</description>
      <pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://www.softwarejutsu.com/articles/five-message-broker-patterns</guid>
      <author>rickvianaldi@gmail.com (Rickvian Aldi)</author>
      <category>Systems</category>
    </item>
    <item>
      <title>Why Engineers Are Obsessed With P99</title>
      <link>https://www.softwarejutsu.com/articles/why-engineers-obsess-over-p99</link>
      <description>If you only watch the average, you are watching the wrong number. P99 is where the money leaks, where the outages start, and where your users quietly decide to leave.</description>
      <pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://www.softwarejutsu.com/articles/why-engineers-obsess-over-p99</guid>
      <author>rickvianaldi@gmail.com (Rickvian Aldi)</author>
      <category>Systems</category>
    </item>
    <item>
      <title>Meta-Stable Failure: When Your System Is Up But Completely Down</title>
      <link>https://www.softwarejutsu.com/articles/meta-stable-failure</link>
      <description>The most dangerous distributed systems failures are the ones where everything looks fine, until it doesn&apos;t. Here&apos;s the failure mode that buries on-call engineers.</description>
      <pubDate>Sun, 19 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://www.softwarejutsu.com/articles/meta-stable-failure</guid>
      <author>rickvianaldi@gmail.com (Rickvian Aldi)</author>
      <category>Systems</category>
    </item>
    <item>
      <title>Thundering Herd: What a 10-Minute Video Taught Me About Retries</title>
      <link>https://www.softwarejutsu.com/articles/thundering-herd-what-retries-taught-me</link>
      <description>I thought I understood API retries. Then I watched Arpit Bhayani explain the thundering herd problem, and realized every retry I&apos;d ever written was either part of the fix - or part of the fire.</description>
      <pubDate>Sun, 19 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://www.softwarejutsu.com/articles/thundering-herd-what-retries-taught-me</guid>
      <author>rickvianaldi@gmail.com (Rickvian Aldi)</author>
      <category>Systems</category>
    </item>
    <item>
      <title>Reading Cron Fluently</title>
      <link>https://www.softwarejutsu.com/articles/reading-cron-fluently</link>
      <description>Most engineers can write a cron expression but struggle to read one at a glance. Here&apos;s a mental model that makes cron as readable as plain English.</description>
      <pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://www.softwarejutsu.com/articles/reading-cron-fluently</guid>
      <author>rickvianaldi@gmail.com (Rickvian Aldi)</author>
      <category>Engineering</category>
    </item>
    <item>
      <title>JWT: What Every Engineer Should Know</title>
      <link>https://www.softwarejutsu.com/articles/jwt-what-every-engineer-should-know</link>
      <description>JSON Web Tokens are everywhere, yet most engineers treat them as black boxes. Here&apos;s the mental model that changes how you debug auth.</description>
      <pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://www.softwarejutsu.com/articles/jwt-what-every-engineer-should-know</guid>
      <author>rickvianaldi@gmail.com (Rickvian Aldi)</author>
      <category>Systems</category>
    </item>
    <item>
      <title>The Pattern Worth Paying For</title>
      <link>https://www.softwarejutsu.com/articles/the-pattern-worth-paying-for</link>
      <description>Idempotency is the single most underrated contract in distributed systems - and ignoring it is how you end up charging customers twice at 3am.</description>
      <pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://www.softwarejutsu.com/articles/the-pattern-worth-paying-for</guid>
      <author>rickvianaldi@gmail.com (Rickvian Aldi)</author>
      <category>Systems</category>
    </item>
    <item>
      <title>The Craft of Deleting Code</title>
      <link>https://www.softwarejutsu.com/articles/the-craft-of-deleting-code</link>
      <description>Adding code is easy. Knowing what to remove - and having the conviction to remove it - is where the real craft lives.</description>
      <pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://www.softwarejutsu.com/articles/the-craft-of-deleting-code</guid>
      <author>rickvianaldi@gmail.com (Rickvian Aldi)</author>
      <category>Craft</category>
    </item>
    <item>
      <title>How I Think About the Staff Engineer Track</title>
      <link>https://www.softwarejutsu.com/articles/how-i-think-about-staff-engineer-track</link>
      <description>Most engineers I know who became staff engineers did not plan for it. The ones who planned for it often got stuck. Here is why - and what the track actually rewards.</description>
      <pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://www.softwarejutsu.com/articles/how-i-think-about-staff-engineer-track</guid>
      <author>rickvianaldi@gmail.com (Rickvian Aldi)</author>
      <category>Career</category>
    </item>
  </channel>
</rss>