Blog
Writing on founding companies and building software, with essays, poems and stories alongside.
Writing on founding companies and building software, with essays, poems and stories alongside.
Writing on founding companies and building software, with essays, poems and stories alongside.
Machine learning and the ideas behind it, architecture decisions, the bugs that were harder than they looked, and what I would build differently now.
Physics meant something exact by emergence. Machine learning borrowed the word and kept only the drama. The difference is worth knowing before you use it.
Why I split a WhatsApp messaging gateway into a public front door and an unreachable engine room, how the two halves confirm every send, and why the engine room left my desk.
How to make a personal site readable by AI agents and LLMs: implementing llms.txt, structured RSS, semantic HTML, JSON-LD, and machine-readable metadata.
Performance patterns for Next.js 16 on Cloudflare Workers via OpenNext: Server Components, static generation, the missing filesystem, images without an optimiser, redirects in config, and font and CSS budgets.
Practical CI/CD pipeline design for solo projects: GitHub Actions, caching, parallel jobs, and deployment strategies built for speed and reliability.
Hard-won open-source licensing lessons: why MIT was the wrong default, the move to CC BY-NC-SA, dual licensing, AGPL for SaaS, and why a CLA matters.
The architecture behind Chat Guard, a Discord moderation bot: sharding, MongoDB patterns, invite attribution, fake account detection, and the event pipeline.