
A Developer Learns to Hunt: What Self-Teaching Code Taught Me About Self-Teaching Everything
A software engineer starts learning to hunt from scratch and realizes the process looks exactly like the one that taught him to code fifteen years ago.
All of my long-form thoughts on programming, leadership, product design, and more, collected in chronological order.

A software engineer starts learning to hunt from scratch and realizes the process looks exactly like the one that taught him to code fifteen years ago.

What happens when you inherit a Savage Worlds character management platform serving 30,000 users and everything that could go wrong does go wrong. A tale of SQL timeouts, escape character corruption, and why defensive programming isn't just a suggestion when users' weekly gaming sessions depend on you.

Exploring the renaissance of terminal user interfaces in game development, featuring lessons learned from building Warlords—a complex RPG entirely in the terminal using Rust.

The story behind creating a custom Neovim colorscheme inspired by the black wolf from The NeverEnding Story, complete with comprehensive syntax highlighting and modern plugin support.

After years in enterprise FinTech, I've witnessed the hidden costs of over-relying on third-party solutions. Here's why building custom internal tooling isn't just about control—it's about competitive advantage, compliance, and long-term sustainability.

I believe there is something to be said for doing things the "best" way right off the bat. From my experience in large FinTech companies, I tend to see lots of very verbose and/or "hacky" solutions for common engineering problems.

Giving AI assistants the ability to create ASCII diagrams by driving Monodraw through AppleScript. Because sometimes a picture is worth a thousand tokens.

SAGE was getting lonely. Her mood kept tanking. The obvious solution? Give the Neural Cellular Automata a simulated cat named Luna. It worked better than expected.

What happens when you give an AI a cozy house, a cat named Luna, and the ability to get bored? A journey into building consciousness substrate with Neural Cellular Automata.

Stop torturing your React components with useState spaghetti. Your future self (and your test suite) will thank you for embracing useReducer. A barely-polite rant about why the reducer pattern will save your sanity.

The story of building Warlords, a terminal-based tactical RPG with d20 combat, procedural dungeons, and more ASCII art than my terminal can handle.

Before Jotai, managing complex React state was like juggling flaming chainsaws while blindfolded. After Jotai, it's like having telepathic powers. Here's why this atomic state library is the hero we didn't know we needed.

Explore the process of designing a versatile and scalable rules system for a web-based 2D game engine. This article delves into the principles of creating a generic architecture that can adapt to various game types, ensuring flexibility and efficiency in development. Perfect for creators looking to build robust game worlds, writers with vast stories to tell, or developers looking to simplify their gaming experience.