<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Andrew Cairns - Software Development Blog</title>
    <description>Articles about software development, design patterns, and programming best practices</description>
    <link>https://acairns.co.uk</link>
    <language>en-us</language>
    <atom:link href="https://acairns.co.uk/rss.xml" rel="self" type="application/rss+xml" />
    <lastBuildDate>Sun, 15 Mar 2026 19:39:33 GMT</lastBuildDate>
    <item>
      <title><![CDATA[Cognitive Debt]]></title>
      <description><![CDATA[The growing gap between the code your team ships and the code your team understands. It's not technical debt. It's worse.]]></description>
      <link>https://acairns.co.uk/posts/cognitive-debt</link>
      <guid isPermaLink="true">https://acairns.co.uk/posts/cognitive-debt</guid>
      <pubDate>Mon, 02 Mar 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[Devlog #4: Hidden Coupling]]></title>
      <description><![CDATA[When eager payload generation exposed a years-old dependency on ORM lifecycle hooks. A simple test revealed how domain events were secretly coupled to database infrastructure.]]></description>
      <link>https://acairns.co.uk/devlogs/profiles/4-hidden-coupling</link>
      <guid isPermaLink="true">https://acairns.co.uk/devlogs/profiles/4-hidden-coupling</guid>
      <pubDate>Wed, 22 Oct 2025 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[Devlog #3: Event Inconsistencies]]></title>
      <description><![CDATA[Discover how mutable events caused hidden inconsistencies during a microservice extraction. In this devlog, I share the investigation, lessons learned, and why immutable events are critical for reliable event-driven architecture.]]></description>
      <link>https://acairns.co.uk/devlogs/profiles/3-event-inconsistencies</link>
      <guid isPermaLink="true">https://acairns.co.uk/devlogs/profiles/3-event-inconsistencies</guid>
      <pubDate>Tue, 19 Aug 2025 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[PHP Pipe Operator Explained — Cleaner, More Readable PHP Code]]></title>
      <description><![CDATA[Explore how a native pipe operator could improve code readability and composition in PHP. Understand current alternatives and what future implementation might look like.]]></description>
      <link>https://acairns.co.uk/posts/php/pipe-operator</link>
      <guid isPermaLink="true">https://acairns.co.uk/posts/php/pipe-operator</guid>
      <pubDate>Mon, 21 Jul 2025 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[Devlog #2: Implementing Branch by Abstraction]]></title>
      <description><![CDATA[Learn how to implement Branch by Abstraction pattern effectively in legacy system modernization. This detailed developer guide explores practical strategies for managing service boundaries, implementing composite services, and gradually transitioning from old to new implementations while maintaining system stability.]]></description>
      <link>https://acairns.co.uk/devlogs/profiles/2-implementing-branch-by-abstraction</link>
      <guid isPermaLink="true">https://acairns.co.uk/devlogs/profiles/2-implementing-branch-by-abstraction</guid>
      <pubDate>Sat, 12 Apr 2025 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[Devlog #1: The Profiles Bounded Context RFC]]></title>
      <description><![CDATA[First installment of the devlog introducing the Profiles Bounded Context RFC]]></description>
      <link>https://acairns.co.uk/devlogs/profiles/1-the-rfc</link>
      <guid isPermaLink="true">https://acairns.co.uk/devlogs/profiles/1-the-rfc</guid>
      <pubDate>Mon, 20 Jan 2025 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[Primitive Obsession]]></title>
      <description><![CDATA[Discover Primitive Obsession in code: recognize symptoms, understand implications, and learn effective fixes with value objects.]]></description>
      <link>https://acairns.co.uk/posts/primitive-obsession</link>
      <guid isPermaLink="true">https://acairns.co.uk/posts/primitive-obsession</guid>
      <pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[Composition over Inheritance]]></title>
      <description><![CDATA[A lot can be learned about software development by playing retro games.]]></description>
      <link>https://acairns.co.uk/posts/composition-over-inheritance</link>
      <guid isPermaLink="true">https://acairns.co.uk/posts/composition-over-inheritance</guid>
      <pubDate>Mon, 29 Jan 2024 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title><![CDATA[Accidental Intent Cancelling]]></title>
      <description><![CDATA[In this article, I introduce a form of Accidental Complexity I've been referring to as Accidental Intent Cancelling.]]></description>
      <link>https://acairns.co.uk/posts/accidental-intent-cancelling</link>
      <guid isPermaLink="true">https://acairns.co.uk/posts/accidental-intent-cancelling</guid>
      <pubDate>Sat, 01 Jan 2022 00:00:00 GMT</pubDate>
    </item>
  </channel>
</rss>