Thoughts on engineering, architecture, and building things that last.
I needed something that texts me at 11pm saying "you still haven't sent that." So I set one up.
Every year I refine my setup. Here's the full breakdown of my development environment heading into 2026.
A great API is one that developers can use correctly without reading the documentation. Here's how to build one.
Good error handling isn't about catching exceptions. It's about making failure a first-class part of your design.
Exploring how embedded video, animated images, and interactive content transform the reading experience on the web.
The notebook worked. The demo impressed everyone. Now ship it to production without losing your mind.
Rust's lifetime system lets you parse data without allocating memory. Here's how and when to use this powerful technique.
The era of artisanal prompt crafting is ending. What comes next is real software engineering applied to AI systems.
Your startup doesn't need Kubernetes. It needs a well-structured monolith and a deployment script.
Learning Rust didn't just teach me a new language. It rewired how I think about every language I use.
For 90% of applications, SQLite is not just sufficient — it's optimal. Stop paying for complexity you don't need.