56,966 blogs · [ { "id": "01a0bb6c-845a-7311-8e23-6cdac3682907", "title": "Andrew Cairns", "url": "https://acairns.co.uk", "published_at": "2026-09-19T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdac3b76987", "title": null, "url": "https://acairns.co.uk/notes", "published_at": "2026-09-19T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdac4525061", "title": "Gear | Andrew Cairns", "url": "https://acairns.co.uk/gear", "published_at": "2026-09-19T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdac50d53a4", "title": "How I Avoid Throwing Slop Grenades", "url": "https://acairns.co.uk/notes/2026/09/19/how-i-avoid-throwing-slop-grenades", "published_at": "2026-09-19T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdac58d3881", "title": "These Aren't New Principles", "url": "https://acairns.co.uk/notes/2026/09/05/these-arent-new-principles", "published_at": "2026-09-05T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdac5d2d438", "title": "Is Attention a Budget or a Curve?", "url": "https://acairns.co.uk/notes/2026/09/03/attention-budget-or-attention-curve", "published_at": "2026-09-03T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdac6b052ae", "title": "The Open-Closed Principle perfectly explains the replicator from Star Trek", "url": "https://acairns.co.uk/notes/2026/07/26/open-closed-principle-replicator-star-trek", "published_at": "2026-07-26T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdac6fbdad1", "title": "My video titles are honest, and that's a problem...", "url": "https://acairns.co.uk/notes/2026/06/13/my-video-titles-are-honest", "published_at": "2026-06-13T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdac7048396", "title": "The Four-Eyes Principle Isn't Slowing You Down", "url": "https://acairns.co.uk/notes/2026/05/20/four-eyes-principle", "published_at": "2026-05-20T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdac7392919", "title": "AX: Agent Experience", "url": "https://acairns.co.uk/notes/2026/05/15/ax-agent-experience", "published_at": "2026-05-15T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdac7f4e2fa", "title": "Disable the 1M context window", "url": "https://acairns.co.uk/notes/2026/05/15/disable-the-1m-context-window", "published_at": "2026-05-15T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdac8a43893", "title": "How I avoid context switching", "url": "https://acairns.co.uk/notes/2026/05/12/how-i-avoid-context-switching", "published_at": "2026-05-12T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdac95d501f", "title": "Language Was Always Important", "url": "https://acairns.co.uk/notes/2026/05/10/language-was-always-important", "published_at": "2026-05-10T00:00:00+00:00" }, { "id": "01a0871f-1086-705a-a746-655170d263d0", "title": "Your Codebase is Your Prompt", "url": "https://acairns.co.uk/posts/your-codebase-is-your-prompt", "published_at": "2026-05-02T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdaca02187f", "title": null, "url": "https://acairns.co.uk/posts", "published_at": "2026-05-02T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdacb7d9ba8", "title": "I finally finished my Event Sourcing video", "url": "https://acairns.co.uk/notes/2026/04/21/event-sourcing-video", "published_at": "2026-04-21T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdacbadb05a", "title": "Success Is Silent", "url": "https://acairns.co.uk/notes/2026/04/15/success-is-silent", "published_at": "2026-04-15T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdacbecedde", "title": "The Night Shift Workflow", "url": "https://acairns.co.uk/notes/2026/03/25/the-night-shift-workflow", "published_at": "2026-03-25T00:00:00+00:00" }, { "id": "01a0871f-1086-705a-a746-6551717c8d18", "title": "Evaluating our Test Pyramid", "url": "https://acairns.co.uk/posts/evaluating-our-test-pyramid", "published_at": "2026-03-23T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdacd7f0fd7", "title": "Composition over Inheritance on roadmap.sh", "url": "https://acairns.co.uk/notes/2026/03/23/composition-over-inheritance-on-roadmap-sh", "published_at": "2026-03-23T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdace5307c2", "title": null, "url": "https://acairns.co.uk/notes/2026/03/15/voicebox", "published_at": "2026-03-15T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdace5a830a", "title": "LSP plugins in Claude Code", "url": "https://acairns.co.uk/notes/2026/03/11/lsp-plugins-claude-code", "published_at": "2026-03-11T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdacee122bc", "title": null, "url": "https://acairns.co.uk/notes/2026/03/08/neologisms", "published_at": "2026-03-08T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdacf2ad8a2", "title": "Semantic Diffusion", "url": "https://acairns.co.uk/notes/2026/03/08/semantic-diffusion", "published_at": "2026-03-08T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdacfc06ee4", "title": "42 Days Across the Labrador Wilderness", "url": "https://acairns.co.uk/notes/2026/03/04/42-days-across-the-labrador-wilderness", "published_at": "2026-03-04T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdacff69aec", "title": "Implicit Freshness", "url": "https://acairns.co.uk/notes/2026/03/03/implicit-freshness", "published_at": "2026-03-03T00:00:00+00:00" }, { "id": "01a0871f-1086-705a-a746-65517232fe57", "title": "Cognitive Debt", "url": "https://acairns.co.uk/posts/cognitive-debt", "published_at": "2026-03-02T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdad0594577", "title": "Pointer Capture for Range Inputs", "url": "https://acairns.co.uk/notes/2026/03/01/pointer-capture-for-range-inputs", "published_at": "2026-03-01T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdad113faba", "title": "Manage the Context Window", "url": "https://acairns.co.uk/notes/2026/02/28/manage-the-context-window", "published_at": "2026-02-28T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdad15bac4c", "title": "Deep Modules and AI-Ready Codebases", "url": "https://acairns.co.uk/notes/2026/02/27/deep-modules-and-ai-ready-codebases", "published_at": "2026-02-27T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdad20f712c", "title": "Mole — macOS Disk Space Cleaner", "url": "https://acairns.co.uk/notes/2026/02/27/mole-macos-disk-space-cleaner", "published_at": "2026-02-27T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdad2eef534", "title": "Subagents and the Smart Zone", "url": "https://acairns.co.uk/notes/2026/02/19/subagents-and-the-smart-zone", "published_at": "2026-02-19T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdad333dc3a", "title": "Raspberry Pi with a Purpose", "url": "https://acairns.co.uk/notes/2026/02/12/raspberry-pi-with-a-purpose", "published_at": "2026-02-12T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdad401fc99", "title": "Discovered EaseMaster – A Playground for Custom Easing", "url": "https://acairns.co.uk/notes/2026/02/08/easemaster", "published_at": "2026-02-08T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdad4dbc279", "title": "Design Patterns for Humans", "url": "https://acairns.co.uk/notes/2026/02/07/design-patterns-for-humans", "published_at": "2026-02-07T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdad5d27bdc", "title": "Compiled Conversations #17: Event Sourcing", "url": "https://acairns.co.uk/notes/2026/02/02/compiled-conversations-17-event-sourcing", "published_at": "2026-02-02T00:00:00+00:00" }, { "id": "01a0871f-1086-705a-a746-655172f9609e", "title": "Devlog #4: Hidden Coupling", "url": "https://acairns.co.uk/devlogs/profiles/4-hidden-coupling", "published_at": "2025-10-22T00:00:00+00:00" }, { "id": "01a0bb6c-845a-7311-8e23-6cdad64277ca", "title": null, "url": "https://acairns.co.uk/devlogs", "published_at": "2025-10-22T00:00:00+00:00" }, { "id": "01a0871f-1086-705a-a746-655173cbb732", "title": "Devlog #3: Event Inconsistencies", "url": "https://acairns.co.uk/devlogs/profiles/3-event-inconsistencies", "published_at": "2025-08-19T00:00:00+00:00" }, { "id": "01a0871f-1086-705a-a746-655173ccac1b", "title": "PHP Pipe Operator Explained — Cleaner, More Readable PHP Code", "url": "https://acairns.co.uk/posts/php/pipe-operator", "published_at": "2025-07-21T00:00:00+00:00" }, { "id": "01a0871f-1086-705a-a746-655174b8748e", "title": "Devlog #2: Implementing Branch by Abstraction", "url": "https://acairns.co.uk/devlogs/profiles/2-implementing-branch-by-abstraction", "published_at": "2025-04-12T00:00:00+00:00" }, { "id": "01a0871f-1086-705a-a746-6551752c67b9", "title": "Devlog #1: The Profiles Bounded Context RFC", "url": "https://acairns.co.uk/devlogs/profiles/1-the-rfc", "published_at": "2025-01-20T00:00:00+00:00" }, { "id": "01a0871f-1086-705a-a746-655175aaa58a", "title": "Primitive Obsession", "url": "https://acairns.co.uk/posts/primitive-obsession", "published_at": "2024-08-28T00:00:00+00:00" }, { "id": "01a0871f-1086-705a-a746-655175e0e06b", "title": "Composition over Inheritance", "url": "https://acairns.co.uk/posts/composition-over-inheritance", "published_at": "2024-01-29T00:00:00+00:00" }, { "id": "01a0871f-1086-705a-a746-65517645e6a5", "title": "Accidental Intent Cancelling", "url": "https://acairns.co.uk/posts/accidental-intent-cancelling", "published_at": "2022-01-01T00:00:00+00:00" } ] posts Claim your blog
Back to acairns.co.uk
Blog · corpus.blog/blogs/acairns.co.uk/posts

acairns.co.uk

acairns.co.uk

2026

2025

2024

2022