London based software development consultant
Programming @programming.dev My obituary for programming
Programming @programming.dev The Decoherence Trap: When AI slop drowns out the signal in an endless sea of noise
Programming @programming.dev Don't diagnose your opponents
Programming @programming.dev I'm still around.. I'm just not writing here
Programming @programming.dev Radiologists are 10 years ahead of us in not being replaced by AI
ActivityPub @programming.dev Some quick thoughts on Unit Testing ActivityPub
Programming @programming.dev Stack Overflow Developer Survey 2026
Programming @programming.dev Anti-Patterns in Software Blogging
Programming @programming.dev How to read code
ActivityPub @programming.dev Internationalized Webfinger Handles in ActivityPub
TypeScript @programming.dev On Automatic Type Refinements
TypeScript @programming.dev Modern Web Types
ActivityPub @programming.dev A reasonably practical guide to validating RFC 9421 HTTP Signatures for ActivityPub in PHP
TypeScript @programming.dev Hiding internal state in TypeScript objects
TypeScript @programming.dev Creator of TypeScript: 10x Faster Typescript, Why AI Won't Replace SWEs
Python @programming.dev IPython is All You Need
ActivityPub @programming.dev ActivityPub Won by Being Boring
TypeScript @programming.dev Migrating a Large Flow Monorepo to TypeScript
OpenStreetMap community @lemmy.ml Why Book Corners won't sync contributions back to OpenStreetMap
TypeScript @programming.dev Type-Aware Linting Stable






