Posts

Ubuntu APT Troubleshooting: Fix Broken Packages, Holds, and GPG Errors

Practical Ubuntu APT troubleshooting guide: fix held packages, broken dependencies, bad PPAs, and NO_PUBKEY GPG errors with a clear step-by-step workflow Ubuntu APT Troubleshooting: Fix Broken Packages, Holds, and GPG Errors

Multi-Agent Orchestration Patterns: A Practical Guide

Six proven multi-agent orchestration patterns for production AI systems: orchestrator-worker, sequential pipeline, fan-out, hierarchical, swarm, and mesh. Decision framework, failure modes, cost analysis, and observability. Multi-Agent Orchestration Patterns: A Practical Guide

Transactional Outbox Pattern in Go with PostgreSQL

Stop losing events between your database and message broker. Learn the transactional outbox pattern in Go with PostgreSQL, FOR UPDATE SKIP LOCKED, and a polling relay. Transactional Outbox Pattern in Go with PostgreSQL

Spec-Driven Development vs Vibe Coding: Waterfall?

Vibe coding drifts, SDD promises structure -- but is it just waterfall with markdown? Learn when specs help, when they hurt, and how to find the useful middle ground. Spec-Driven Development vs Vibe Coding: Waterfall?

What Is Spec-Driven Development? The Spec as Source of Truth

SDD makes the specification the source of truth for AI coding. Learn the core workflow, how it differs from TDD and BDD, and the real costs and benefits. What Is Spec-Driven Development? The Spec as Source of Truth

Decision Records for AI-Driven Software Development

Learn how ADRs, PDRs, and DDRs preserve intent, guide AI coding agents, and keep architecture, product, and design decisions close to code. Decision Records for AI-Driven Software Development

Testing Concurrent Go Code with synctest

Learn how Go testing/synctest makes concurrent tests faster and more reliable with fake time, isolated bubbles, Wait, and deterministic async behavior. Testing Concurrent Go Code with synctest

Go Error Handling Architecture: Boundaries and Patterns

Learn Go error handling architecture with wrapping, sentinel errors, custom types, errors.Is, errors.As, API boundaries, logging, and production patterns. Go Error Handling Architecture: Boundaries and Patterns