
Metrics Are Not Enough: Adding Searchable History to BullMQ
How bull-der-dash grew an embedded SQLite history store, full-text search, and exact per-job-name stats — without reintroducing the Redis-scanning problem I warned about last time.

In Part 1 of this series, I introduced the idea of looking at development stacks the way golfers look at their gear. Every tool in the bag has a purpose. Some we reach for without thinking. Others we try out, experiment with, and either adopt or toss...

TypeScript developers love discriminated unions (or tagged unions). They provide a fantastic way to model states, events, or different kinds of data structures in a type-safe manner. When working with external data sources like JSON APIs, however, de...

Introducing a New Series for Developers Who Love Tools

Everything old is new again For the last several years, I’ve been building software quietly behind the scenes. My focus was deep in the architecture, the tooling, and the day-to-day work of helping teams ship reliable code. And while that work has be...