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

AI Is Creating More Software Than We Can Understand

For decades, software engineering had a fairly predictable constraint. Writing software was expensive. Every feature required engineers, every system required implementation, and every new capability required time, effort, and people. That constraint shaped how we built software. Today, it is disappearing. AI can generate code faster than most teams can review it, and that changes something fundamental about the job. The Old Bottleneck For most of software history, engineering organizations optimized for output....

June 18, 2026

The Problem With Chasing GPU Utilization

Walk into any AI infrastructure discussion and you’ll hear the same question: What’s your GPU utilization? It’s become the infrastructure equivalent of asking a web service for its CPU utilization. The assumption is simple: higher utilization is better. After all, GPUs are expensive, and a cluster running at 90% utilization sounds far more impressive than one running at 50%. For a long time, I believed that too. Then I spent more time working on GPU scheduling and multi-tenant AI workloads....

June 16, 2026

The Day I Learned DNS Is Never Simple

I used to think DNS was boring. You ask for a name, you get an IP, the application connects. That was my entire mental model, until a bug dismantled it completely. The service worked when addressed by IP but failed with a hostname. It worked from one machine and failed from another. Then, oddly, it started working the moment I added a trailing dot to the domain name. That day I learned that DNS is never simple, not because it is poorly designed, but because decades of accumulated behaviour are hiding behind what looks like a plain string....

June 6, 2026

Mastering Git Worktrees for Parallel Development and AI Agent Workflows

Most developers know how to branch in Git. Far fewer know how to work on multiple branches without constantly disrupting themselves. That problem used to be mostly about human workflow. You were in the middle of a feature, an urgent bug came in, a teammate asked you to review something, and suddenly your clean local state was gone behind a mix of branch switching, stashing, and half-finished changes. It was annoying, but manageable....

April 24, 2026

Retries, Timeouts, and Idempotency: The Trio That Defines Production Reliability

Distributed systems rarely fail in clean, obvious ways. They degrade. They stall. They partially succeed. They retry half a request, lose the response, and leave you wondering whether the operation happened once, twice, or not at all. In production, reliability is rarely about whether the code works on a happy path. It is about how the system behaves when dependencies are slow, networks are unreliable, and clients do not get a clear answer....

April 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

The Death of the 'Prompt Engineer,' the Rise of the 'Agent Architect'

The Catalyst: When the Chatbox Became a Bottleneck For the last two years, the industry has been obsessed with the “perfect prompt.” We treated Large Language Models like oracle machines where the right magic words would yield the perfect JSON output. We leaned on “Prompt Engineering” to whisper to the models, hoping for consistency. However, in production-grade systems, hope is not an architectural strategy. The release of Gemini 3.1 Flash Live and the emergence of frameworks like Tezign GEA (Generative Enterprise Agent) over the last 48 hours have officially signaled the end of this era....

March 29, 2026 Â· Shubham Srivastava