Self-Hosting Temporal in Go to Replace Cron and Custom State Management

Most backend systems eventually grow a hidden workflow engine. It rarely starts that way. It usually begins with a simple cron job that wakes up every ten minutes, queries the database for pending records, processes them, and updates a status column. It seems simple enough, until production happens. A downstream API times out. A worker crashes halfway through processing. A deployment abruptly kills the process. A customer asks why their job is stuck....

June 20, 2026

Building Boring, Reliable Go Services in Production

The software industry has a habit of celebrating novelty. New frameworks, new abstractions, new patterns, and new promises of developer productivity show up every few months. Production systems, however, rarely fail because they were not modern enough. They fail because they were difficult to reason about, fragile under stress, and painful to operate. Over time, I have become much less interested in clever backend services and much more interested in boring ones....

April 18, 2026