Writing
Notes on platforms, architecture, and the craft of shipping software.
I lost patience with writing code, not with engineering
A short post of mine on AI-assisted coding struck a nerve. Here is the longer version, with the evidence: the research on AI and code quality is genuinely mixed, and the variable that decides which way it breaks is the experienced engineer who stays in the loop.
Read more →Making WordPress behave on Upsun
I wrote an open-source must-use plugin that teaches WordPress it is running on an immutable platform with instant production clones — so a preview environment stops being able to email real customers or charge real cards. Here is what it does and why.
Read more →The build with no database
The most satisfying diff of the migration was the platform config: three backing services down to none. Here is the whole file that runs this site, annotated — and why "no database" is the point, not a limitation.
Read more →Keeping fourteen years of URLs alive
Replacing the CMS is the easy part. Not breaking every link the old site ever published is the part that takes care — one regular expression, an ordered redirect table, and a way to prove it works.
Read more →Vectorising a 2012 logo
The last thing the WordPress-to-Astro migration left behind was a blurry PNG logo. Rebuilding it as a vector meant identifying a fourteen-year-old font, tracing three blobs pixel by pixel, and learning which cut of Pacifico I actually needed.
Read more →Artetecha is back
From a London consultancy to an Italian practice: why this site returned, and what it runs on now.
Read more →WordPress to Astro in a day
How this site went from a WordPress stack with three backing services to a static Astro build — content migration, redirects, and dark mode included — in a single working day.
Read more →How Open Source practices can help bridge the communication gap in remote-first companies
How the public-by-default communication, netiquette, and documentation habits of open source communities can fix the communication gap in remote-first companies.
Read more →The Invisible Gap: Inequalities Between Employees and Contractors in Remote-First Tech Companies
Why the contractor arrangements common in remote-first tech companies create real inequalities and legal risks, and how Employer of Record services can close the gap.
Read more →(Reverse) Polish Notation in JavaScript
Solving Polish and Reverse Polish Notation expressions in JavaScript, from a classic stack-based approach to a more elegant version using an operator map.
Read more →Making the most of old devices
How a rooted 2013 Minix Neo X7 Android TV box found a second life as a 30Mbps VPN router instead of ending up in a drawer.
Read more →