Technical Articles

46 articles

Browse by topic: PHP · Infrastructure · Database · AI & LLMs · TypeScript · Quality Assurance

AI & LLMs

The Ouroboros Problem

A failure pattern I keep seeing in agentic coding workflows: an agent invents a rule whilst explaining its own reasoning, a later session reads that rule as a human requirement, and both defend and extend it from there. I don't have a fix for it yet.

2 September 2026·11 min read
Infrastructure

The Host-Action Bridge: Letting a Sandboxed Agent Control Containers It Cannot Reach

How a file-based request spool, a host-side systemd watcher, and a closed verb allowlist let a runtime-less AI coding agent container trigger orchestration actions on its host, without a container socket, SSH access, or ad-hoc firewall holes.

27 August 2026·14 min read
TypeScript

Component-Driven Design with React, TypeScript, and Storybook

How building UIs as a hierarchy of typed, isolated components, with styling controlled entirely through declared props, produces design systems that stay coherent, testable, and maintainable as they grow.

29 May 2026·12 min read
PHP

PHP Exception Best Practices: Hard Rules, Project-Level Hierarchies, and Modern 8.4 Patterns

Simple hard rules for when to throw RuntimeException vs LogicException vs InvalidArgumentException, when to create project-level exceptions, how to structure them with typed properties and static factory methods, and how to log them properly with Monolog. Python and TypeScript get a cursory treatment at the end.

15 April 2026·18 min read
PHP

OpenAPI and Automatic Code Generation: Define Once, Generate Everywhere

How OpenAPI specifications let you define your API once and automatically generate type-safe client SDKs, server stubs, and models in PHP, TypeScript, Python, and dozens of other languages.

24 March 2026·20 min read
Quality Assurance

Errors vs Bugs: The Difference That Actually Matters

An error tells you what went wrong, whilst a bug makes you figure it out yourself - a distinction that shapes how you should write code, handle failures, and think about the cost of debugging.

11 March 2026·12 min read
Infrastructure

Stop Encrypting Entire Files with Ansible Vault. Use Vault Strings Instead.

Ansible Vault file encryption creates opaque blobs that break git diffs, block code review, and resist AI tooling. Vault encrypted strings keep your keys visible and your values safe, making them a strictly better workflow for infrastructure secrets.

3 March 2026·15 min read
Infrastructure

systemd Timers: The Modern Alternative to Cron Jobs

Cron has scheduled Linux tasks for fifty years, but systemd timers offer structured logging, dependency management, security sandboxing, and catch-up execution that cron simply cannot match. A deep dive for engineers running Red Hat, Fedora, and Rocky Linux.

26 February 2026·14 min read
Quality Assurance

Defence Before Fix: Preventing Bug Classes with Static Analysis

A method for turning a single bug report into a permanent, provable defence against its whole class, in six clauses, with a worked PHPStan example and the specification and toolchains that now implement it.

22 February 2026·25 min read
AI & LLMs

The AI Development Paradigm Shift: Managing the Firehose

AI coding assistants are fundamentally transforming software development productivity and economics. Understanding when to use AI versus deterministic code is now a critical strategic skill.

19 November 2025·14 min read
TypeScript

TypeScript's Honesty System: Why Type Safety is Optional and How to Enforce It

A working ESLint and tsconfig setup that actually enforces the type safety TypeScript only suggests by default, built against a taxonomy of the 25+ ways developers (and LLMs) routinely bypass it.

18 November 2025·18 min read
PHP

Using PHPStan to Enforce Project-Level Rules

Learn how to write custom PHPStan rules to enforce performance, architectural, and testing standards across your entire codebase. Includes real-world examples and multi-language comparisons.

10 November 2025·12 min read
AI & LLMs

Claude Code Latest Features: What's New in Autumn 2025

A dated snapshot of Claude Code as of November 2025: how checkpoints, subagents, the plugin system, and MCP fit together, plus version-specific fixes and settings added across the 2.0.30-2.0.33 release run.

5 November 2025·12 min read
AI & LLMs

Advanced Claude Code Hooks: Controlling Sub-Agent Behaviour

Learn how to use Claude Code hooks to enforce execution rules for parallel sub-agents, preventing resource conflicts in test suites and other shared-resource scenarios.

24 October 2025·8 min read
Database

Advanced PHP Database Patterns: Beyond ORMs for High-Performance Applications

Discover advanced database patterns for PHP including retry mechanisms, bulk updates, statement caching, query classes, generators for memory efficiency, and PHPStan rules for test correctness. Learn when to use PDO directly over ORMs.

8 October 2025·18 min read
PHP

Caching vs Memoization: Choosing the Right Optimization Strategy

Deep dive into caching and memoization strategies, their differences, use cases, anti-patterns, and practical implementation tips across programming languages.

6 October 2025·10 min read
AI & LLMs

Claude Code Planning and Execution Workflows: From Built-in Modes to Parallel Agents

How to structure Claude Code planning work: a PlanWorkflow.md contract, GitHub issue-driven tracking, and the workflow tiers from built-in Plan Mode through parallel agents and custom subagents

1 October 2025·12 min read
PHP

Reusable OpenAPI Classes: Eliminating Boilerplate in PHP API Documentation

A worked example of the DRY principle applied to Symfony API documentation: wrap swagger-php OpenAPI attributes in your own reusable response, parameter, and security classes so a single change updates every endpoint that uses it.

30 September 2025·12 min read
PHP

PHP Stream Wrappers: Mastering I/O Abstraction and Custom Protocols

How PHP treats files, URLs, compressed data, and custom protocols through the same handful of functions, and when writing your own wrapper is worth the extra code

26 September 2025·9 min read
PHP

How Lenient Regex Patterns Explode Your Code Paths

Why optional regex patterns create exponential complexity and how strict validation reduces maintenance burden through fail-fast principles.

26 September 2025·5 min read
Infrastructure

Automating Fedora 42 Desktop Development: Open Source Infrastructure as Code

What a real Ansible repository for provisioning a Fedora desktop looks like, and why baseline automation should stay narrow so project-specific stacks can build on top of it.

3 September 2025·12 min read
AI & LLMs

The Overfitting Trap: When LLM Agents Fix One Thing and Break Everything Else

A field guide to catching LLM agents when they hardcode a narrow fix instead of solving the actual bug, with prompt patterns and tests that force generic solutions.

26 August 2025·12 min read
AI & LLMs

Understanding LLM Context: The Hidden Challenge of AI Development

How context actually works when you are talking to a Large Language Model like Claude Code, why it degrades over a long conversation, and practical strategies for keeping it under control.

20 August 2025·12 min read
Database

Upgrading Legacy MySQL: From MyISAM to Modern MySQL 8.4

A practical walkthrough for engineers maintaining pre-2010 MySQL schemas: six concrete failure scenarios MyISAM allows, and the transactions, constraints, and locking MySQL 8.4 and InnoDB use to close them.

18 August 2025·10 min read
Infrastructure

The Unix Philosophy: A Strategic Guide for Technology Leadership

How the 50-year-old Unix philosophy still shapes resilient infrastructure, reduces vendor lock-in, and gives technology leaders more room to manoeuvre through modular, composable systems.

13 August 2025·12 min read
PHP

Dependency Inversion, Final Classes, and Pragmatic Testing in PHP 8.4

Why final classes push dependency inversion toward composition over inheritance, and how the Detroit/London testing split resolves into a simpler rule for when to reach for a mock.

11 August 2025·18 min read
PHP

Defensive Programming Principles: YAGNI, Invalid States, and Domain Purity

A practical look at three techniques - YAGNI, type-driven invalid-state prevention, and domain object purity - for cutting whole categories of bugs out of PHP and TypeScript codebases before they can exist.

7 August 2025·14 min read
PHP

Fail Fast Programming: Why Your Code Should Crash Spectacularly

A practical look at fail-fast programming in PHP, TypeScript, Bash, and Ansible - writing high-trust code that fails early, clearly, and at the exact point of deviation from expectations.

4 August 2025·12 min read
PHP

Early Return Patterns: Your Code's Best Exit Strategy

Master guard clauses and early return patterns across PHP, TypeScript, Bash, and Ansible to write cleaner, more maintainable code with reduced cognitive complexity

31 July 2025·9 min read
PHP

Mocking in Tests: Like Hot Sauce - A Little Goes a Long Way

Learn when to mock and when not to mock in unit tests. Discover why over-mocking creates brittle, unmaintainable tests and how to write better tests with minimal mocking using TypeScript, Vitest, and PHPUnit.

30 July 2025·10 min read
PHP

PHP Magic Constants for Maintainable Logging Systems

Master PHP magic constants (__FILE__, __METHOD__, __CLASS__, etc.) to build contextual logging systems with Monolog and PSR-3 that automatically track execution flow and debugging information.

28 July 2025·12 min read
PHP

PHP-QA-CI: A Comprehensive Quality Assurance Pipeline in a Single Dependency

LTS PHP-QA-CI provides a complete, production-ready QA pipeline with a full suite of integrated tools through a single Composer dependency, covering configuration, customisation, and CI/CD integration strategies.

25 July 2025·15 min read
PHP

PHP PER: The Evolution Beyond PSR-12 Coding Standards

Understanding PHP Evolving Recommendations (PER), how to enforce them with QA tools, and why PER Coding Style looks like the direction PHP standards are heading.

24 July 2025·12 min read
TypeScript

TypeScript Dependency Injection: A PHP Developer's Perspective

Understanding the fundamental differences between dependency injection in TypeScript and PHP, from structural typing to the lack of standardisation.

23 July 2025·15 min read
TypeScript

oclif: The Open CLI Framework - A Comprehensive Guide

An in-depth exploration of oclif, the enterprise-grade CLI framework from Salesforce. Learn best practices, pros and cons, and compare with alternatives.

22 July 2025·12 min read
TypeScript

Dynamic Gradient Headings: A CSS and JavaScript Implementation

How a single CSS custom property and a throttled mousemove listener are enough to make heading gradients track the cursor, with no per-element recalculation.

21 July 2025·6 min read
AI & LLMs

Building Better Claude Code Workflows with CC-Commands

Discover how the CC-Commands repository solves the pain points of managing custom Claude Code commands across multiple projects with straightforward automation and intelligent synchronisation.

18 July 2025·8 min read
Infrastructure

Fedora 42: What's New in KDE Plasma, COSMIC, and the Installer

A look at Fedora 42's headline changes - KDE Plasma promoted to a full edition alongside GNOME, an official (alpha-quality) COSMIC Spin, a WebUI-based Anaconda installer for Workstation, and the toolchain updates underneath.

18 July 2025·4 min read
Infrastructure

Ansible Fact Caching: The --limit Problem and Environment Separation Pain Points

Deep dive into Ansible fact caching limitations with --limit operations and the lack of dynamic cache location configuration for multi-environment deployments.

29 January 2025·10 min read
PHP

Managing Legacy PHP: From Technical Debt to Modern Architecture

Strategies for modernising legacy PHP codebases and managing technical debt effectively

15 January 2025·14 min read
Infrastructure

Ansible Automation for PHP Infrastructure

Complete guide to automating PHP infrastructure deployment and management using Ansible

10 January 2025·15 min read
Infrastructure

Proxmox vs Cloud: Why Private Infrastructure Wins

Why Proxmox-based private infrastructure often beats public cloud for PHP workloads with predictable demand, covering cost, performance, control, and the cases where cloud still wins.

5 January 2025·10 min read
PHP

High-Performance PHP: Optimisation Strategies

OPcache tuning, connection pooling, multi-level caching and async job queues for PHP applications under real load

28 December 2024·12 min read
Database

MySQL Performance Tuning for Complex PHP Applications

A practical guide to MySQL configuration tuning, indexing, query rewriting, partitioning, and caching for PHP systems running complex, high-volume queries

20 December 2024·12 min read
PHP

Building Scalable Backend APIs with Modern PHP

Comprehensive guide to building scalable, maintainable PHP APIs using modern architecture patterns

15 December 2024·16 min read
AI & LLMs

AI-Enhanced PHP Development: Tools and Workflows

Modern PHP development enhanced with AI tools and workflows for increased productivity and code quality

10 December 2024·10 min read