Articles
Notes on building things, solving problems and learning as I go. Occasionally, a detour into books, running, cycling or cooking.
-
Six weeks out from 50 km: making room for recovery
A difficult 32.24 km run, roughly 70 km weeks and a closer look at sleep, early starts, fuelling and recovery as my December ultra approaches.
-
Making AI show its working
A five-step process to include with AI development requests: agree the change, protect the existing work, test it, provide evidence and confirm the result.
-
AI: The mime of human output, not thought
AI gets us to good enough quickly. My concern is the work we accept without understanding its decisions, and what that means for productivity.
-
Responding to the PHP zero-day across 173-plus websites
Our 21 October PHP security response: patching more than 173 websites, upgrading three servers and taking ecommerce and sensitive-data systems offline.
-
Two 30 km runs on the way to 50 km
Two early starts, two 30 km runs, and different lessons about rain, darkness, shoes and fuelling as I train for my 50 km ultra.
-
Ten weeks out from my 50 km ultra
Making room for ultra training around work and family, following a plan, and finding time to think on familiar running loops.
-
AI and the cost of interrupted focus
The cycle of prompting, waiting and checking could change how we concentrate, learn and experience work. What research tells us, what remains uncertain and how we might protect our attention.
-
How AI is changing my work as a developer
What using AI for Laravel projects and rebuilding my website has taught me about judgement, learning, design and the skills I want to develop next.
-
Why I came back to design
Why I stepped back from design in 2020, returned in 2025, and how branding, application UX and critical thinking now shape my development work.
-
Can an AI agent actually use your website?
What Lighthouse’s agentic browsing checks and WebMCP mean for the way I think about interfaces, forms and building websites people can trust.
-
Building accessible multistep forms with Laravel and Inertia
A practical approach to multistep Laravel and Inertia forms, based on my EDR work: saved drafts, server validation, clear errors and predictable keyboard navigation.
-
How Zwift fits around my running
My Boardman, a Wahoo trainer and Zwift have given cycling a useful place alongside running. The setup in my study, the music and why an easy ride can be enough.
-
Why we built One Base around Gutenberg
Our approach to a shared WordPress base theme: full site editing, native Query Loops, selective CSS loading and a simpler editing experience for clients.
-
Getting back to running and building towards 50 km
Returning to running after six months off, building towards a 50 km ultra, and learning what pacing, food and recovery mean on a long run.
-
Handling custom API integrations in WordPress
A practical approach to WordPress API integrations, based on my work across the Stagecoach UK and Canadian websites: validate responses, preserve stable IDs and keep external requests away from page rendering.
-
Cooking for the enjoyment of it
After ten years of cooking as part of the household routine, I am finding more room to enjoy it as a hobby. A recent chicken and bacon pie, gooey brownies and a growing Saturday-morning…
-
Adding category filters to a WordPress Query Loop
Add category links to a native WordPress Query Loop while keeping Gutenberg layouts and pagination. Includes scoped queries, input validation and checks.
-
Loading Gutenberg block CSS only when needed
How I separate global, block and pattern CSS in One Base, with a practical WordPress loading example and checks for the editor and frontend.
-
Connecting time management, capacity and financial projections
The time-management part of my operational plan connects project-manager scheduling, individual control, delivery budgets and financial projections.
-
Client retention starts with understanding the work
How I approached client retention through early warning signs, project retrospectives, exit interviews and measures of success agreed with the client.
-
Launching Pathfinder Analytics
Launching my own planning, time tracking and budgeting application, and bringing a whole team onto one system with room to do their best work.
-
Improving development through clearer processes and AI
My development plan brings together AI-assisted blocks, content imports, clearer scope and a more deliberate approach to feedback and automation.
-
Team operations: capacity, development and shared responsibility
Employee maximums, development programmes and clearer responsibilities between departments were central to the operational plan I put together.
-
Building the operational infrastructure a business needs
The operational plan I drew up to connect team capacity, delivery, client retention and the financial decisions behind the work.