RSS Amplifier

Blog

Andrew Cairns - Software Development Blog

Articles about software development, design patterns, and programming best practices

acairns.co.ukRSS feed ↗11 posts

Latest posts

Your Codebase is Your Prompt

Everything in your repo is part of the prompt. The loudest signal wins — even when it's wrong.

Evaluating our Test Pyramid

Our DX survey says the feedback loop is too slow. I had a hunch our test pyramid was off. So I built an analyser to find out — and the real problem wasn't what I expected.

Cognitive Debt

The growing gap between the code your team ships and the code your team understands. It's not technical debt. It's worse.

Devlog #4: Hidden Coupling

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.

Devlog #3: Event Inconsistencies

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.

PHP Pipe Operator Explained — Cleaner, More Readable PHP Code

Explore how a native pipe operator could improve code readability and composition in PHP. Understand current alternatives and what future implementation might look like.

Devlog #2: Implementing Branch by Abstraction

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.

Devlog #1: The Profiles Bounded Context RFC

First installment of the devlog introducing the Profiles Bounded Context RFC

Primitive Obsession

Discover Primitive Obsession in code: recognize symptoms, understand implications, and learn effective fixes with value objects.

Composition over Inheritance

A lot can be learned about software development by playing retro games.

Accidental Intent Cancelling

In this article, I introduce a form of Accidental Complexity I've been referring to as Accidental Intent Cancelling.