<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/feed.xsl"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Christopher Clines — Systems &amp; Architecture</title>
    <link>https://chrisclines.co.uk/blog</link>
    <description>Engineering post-mortems, distributed systems write-ups, and telemetry architecture notes.</description>
    <language>en-gb</language>
    <lastBuildDate>Tue, 20 Oct 2026 20:56:16 GMT</lastBuildDate>
    <atom:link href="https://chrisclines.co.uk/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Beyond Code: Why GitHub is Your True Engineering Resume</title>
      <link>https://chrisclines.co.uk/blog?article=github-for-junior-developers</link>
      <guid isPermaLink="true">https://chrisclines.co.uk/blog?article=github-for-junior-developers</guid>
      <pubDate>Tue, 22 Sep 2026 00:00:00 GMT</pubDate>
      <description>For junior developers, GitHub isn&apos;t just a cloud drive for code. It&apos;s a public ledger of your engineering habits, communication skills, and technical evolution.</description>
      <category>Career &amp; Growth</category>
    </item>
    <item>
      <title>The Promotion Gap: Moving from Ticket Taker to System Owner</title>
      <link>https://chrisclines.co.uk/blog?article=the-promotion-gap</link>
      <guid isPermaLink="true">https://chrisclines.co.uk/blog?article=the-promotion-gap</guid>
      <pubDate>Tue, 22 Sep 2026 00:00:00 GMT</pubDate>
      <description>Writing perfect code won&apos;t get you promoted to Senior Engineer. Here is the framework engineering managers use to evaluate readiness for the next level.</description>
      <category>Career &amp; Growth</category>
    </item>
    <item>
      <title>The Scientific Method of Debugging: How to Never Stay Stuck</title>
      <link>https://chrisclines.co.uk/blog?article=scientific-method-debugging</link>
      <guid isPermaLink="true">https://chrisclines.co.uk/blog?article=scientific-method-debugging</guid>
      <pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate>
      <description>Junior developers guess and check. Senior developers use the scientific method. A step-by-step tutorial on isolating and destroying stubborn bugs.</description>
      <category>Engineering Practices</category>
    </item>
    <item>
      <title>The Fallacy of Infinite Abstraction: Why Software Stagnates Under Its Own Weight</title>
      <link>https://chrisclines.co.uk/blog?article=fallacy-of-infinite-abstraction</link>
      <guid isPermaLink="true">https://chrisclines.co.uk/blog?article=fallacy-of-infinite-abstraction</guid>
      <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
      <description>Modern software development is running a dangerous deficit: we are piling abstractions on top of leaky foundations, trading long-term system stability for short-term developer convenience.</description>
      <category>Engineering Philosophy</category>
    </item>
    <item>
      <title>Pragmatic API Design: Building Interfaces That Don&apos;t Break</title>
      <link>https://chrisclines.co.uk/blog?article=pragmatic-api-design</link>
      <guid isPermaLink="true">https://chrisclines.co.uk/blog?article=pragmatic-api-design</guid>
      <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
      <description>A tutorial on elevating your backend skills by designing APIs that handle network failures, scale efficiently, and protect database integrity.</description>
      <category>Architecture</category>
    </item>
    <item>
      <title>The Senior Shift: Stop Writing Code, Start Writing Context</title>
      <link>https://chrisclines.co.uk/blog?article=writing-context-not-just-code</link>
      <guid isPermaLink="true">https://chrisclines.co.uk/blog?article=writing-context-not-just-code</guid>
      <pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate>
      <description>The difference between mid-level and senior engineers rarely lies in typing speed. It lies in making architectural trade-offs legible to the rest of the company.</description>
      <category>Engineering Leadership</category>
    </item>
    <item>
      <title>Syntax is Cheap: System Stewardship in the Age of Generative Code</title>
      <link>https://chrisclines.co.uk/blog?article=syntax-is-cheap-system-stewardship</link>
      <guid isPermaLink="true">https://chrisclines.co.uk/blog?article=syntax-is-cheap-system-stewardship</guid>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <description>As AI tools commoditize syntax generation, the value of a software engineer moves from writing functions to defining system boundaries, data invariants, and failure modes.</description>
      <category>Technical Leadership</category>
    </item>
    <item>
      <title>The Lindy Effect in Software: Why the Oldest Stacks Keep Winning</title>
      <link>https://chrisclines.co.uk/blog?article=lindy-effect-in-software</link>
      <guid isPermaLink="true">https://chrisclines.co.uk/blog?article=lindy-effect-in-software</guid>
      <pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate>
      <description>The Lindy Effect dictates that the future life expectancy of technology is proportional to its current age. Here is why boring, battle-tested technologies consistently outperform modern framework churn.</description>
      <category>Architecture Strategy</category>
    </item>
    <item>
      <title>Beyond Redis Redlock: Race-Free Distributed Locks in High-Concurrency Systems</title>
      <link>https://chrisclines.co.uk/blog?article=distributed-mutexes-redis-redlock</link>
      <guid isPermaLink="true">https://chrisclines.co.uk/blog?article=distributed-mutexes-redis-redlock</guid>
      <pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate>
      <description>Why naive Redis distributed locks fail under clock drift and garbage collection pauses, and how fencing tokens prevent split-brain state mutations.</description>
      <category>Systems Engineering</category>
    </item>
    <item>
      <title>Bypassing the VDOM: 60 FPS Animation Engine Design in React</title>
      <link>https://chrisclines.co.uk/blog?article=bypassing-react-vdom-60fps</link>
      <guid isPermaLink="true">https://chrisclines.co.uk/blog?article=bypassing-react-vdom-60fps</guid>
      <pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate>
      <description>Eliminating React re-render thrashing inside high-frequency render loops by decoupling state management from the virtual DOM reconciliation tree.</description>
      <category>Frontend Performance</category>
    </item>
    <item>
      <title>The Case for Boring Technology: Lessons from 10+ Years in Production</title>
      <link>https://chrisclines.co.uk/blog?article=boring-tech-in-production</link>
      <guid isPermaLink="true">https://chrisclines.co.uk/blog?article=boring-tech-in-production</guid>
      <pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate>
      <description>Novelty is fun in weekend hackathons, but production reliability belongs to proven, predictable tools. Why choosing boring technology saves teams.</description>
      <category>Architecture</category>
    </item>
    <item>
      <title>Scaling Spatial Queries: Quadtrees, GIST Indexes, and In-Memory Caching</title>
      <link>https://chrisclines.co.uk/blog?article=postgis-spatial-indexing-at-scale</link>
      <guid isPermaLink="true">https://chrisclines.co.uk/blog?article=postgis-spatial-indexing-at-scale</guid>
      <pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate>
      <description>How to optimize multi-gigabyte spatial polygon intersections from 15-second timeouts down to sub-40ms execution times using two-phase spatial filtering.</description>
      <category>Database Performance</category>
    </item>
    <item>
      <title>Taming Serverless Cold Starts: Micro-Runtimes and Connection Pooling</title>
      <link>https://chrisclines.co.uk/blog?article=zero-cold-start-serverless</link>
      <guid isPermaLink="true">https://chrisclines.co.uk/blog?article=zero-cold-start-serverless</guid>
      <pubDate>Sat, 02 May 2026 00:00:00 GMT</pubDate>
      <description>Practical architectural patterns for eliminating container spin-up latency and database socket exhaustion in event-driven serverless environments.</description>
      <category>Cloud &amp; DevOps</category>
    </item>
    <item>
      <title>Scaling Serverless Node.js Microservices on Google Cloud Run</title>
      <link>https://chrisclines.co.uk/blog?article=scaling-node-microservices</link>
      <guid isPermaLink="true">https://chrisclines.co.uk/blog?article=scaling-node-microservices</guid>
      <pubDate>Thu, 15 Aug 2024 00:00:00 GMT</pubDate>
      <description>A post-mortem on handling bursty e-commerce checkout traffic without cold-start spikes or memory leak accumulation.</description>
      <category>Cloud &amp; Microservices</category>
    </item>
  </channel>
</rss>