Blog
Thoughts on software, entrepreneurship, and everything in between.
Thoughts on software, entrepreneurship, and everything in between.
Got a project in mind, a question, or just want to chat? I would love to hear from you.
Send an EmailThoughts on building software, running a business, and everything in between.
Architecture decisions, incident write-ups, and post-mortems from production systems.
HMD Corporation's founder utilises a bespoke AI system to generate blog posts from spoken words.
How to make your personal site readable by AI agents and LLMs, implementing llms.txt, structured RSS, semantic HTML, and machine-readable metadata
How HMD Pay charges nothing for payment processing, and why the model that everyone said was impossible has been running for over three years.
Integrating charitable micro-donations into iOS apps using StoreKit, the technical implementation and the philosophy behind purpose-driven software
The story behind Snooze If You Can, an iOS alarm app built in Swift and SwiftUI, from concept to open-source release
Performance optimisation patterns for Next.js 15 deployed on Vercel, from React Server Components to image optimisation and edge middleware
The principles that survived five years of running HMD Corporation and the assumptions that did not
The complete TypeScript stack we use at HMD Developments in 2025, from Next.js to infrastructure, and why we chose every piece
Practical CI/CD pipeline design for small teams, from GitHub Actions to deployment strategies, built for speed and reliability
Principles for API design that prioritise developer experience, from URL structure to error messages, learned from building payment and communication APIs
A practical framework for choosing between PostgreSQL, MongoDB, Redis, and other databases, based on real decisions across 25+ projects
A practical argument for TypeScript over plain JavaScript, with real examples from production codebases where type safety prevented bugs and improved developer experience