Posts
-
Pessimistic vs Optimistic Locking in Concurrent Backends
-
The Silent Go Memory Leak: Unclosed HTTP Response Bodies
-
Concurrency in Go: sync.Map vs map + sync.RWMutex
-
Handling Context Cancellations Correctly in Go Database Queries
-
API Idempotency: Why You Need Retry Keys
-
Streaming AI Responses via gRPC + SSE: Python FastAPI → Go Backend → Browser
-
Zero-Downtime Database Migrations on Large Tables
-
SQL Deadlocks: Why They Happen and How to Fix Them
-
The Hidden Cost of Missing Foreign Key Indexes
-
Timezones and time.Time Bugs in Go
-
The Dangers of Pagination with OFFSET and LIMIT
-
Go Worker Pools, Job Queues, and Background Processing
-
gRPC in Go: Building High-Performance Service-to-Service APIs
-
Observability in Go: Structured Logging, Metrics, and Distributed Tracing
-
Caching Strategies in Go: From In-Process to Distributed
-
Event-Driven Architecture in Go with Kafka
-
Go Backend Engineering: Real-World Problems, Bugs, and Solutions
-
Database Connection Pooling and Query Optimization in Go
-
Building Resilient Go Services: Circuit Breakers and Retry Strategies
-
Rate Limiting in Go: Token Bucket, Sliding Window, and Redis
-
Distributed Transactions in Go: Sagas, Outbox, and 2PC
-
Monolith vs Microservices in Go: Choosing the Right Architecture
-
Welcome to My Bugs and Solutions on Real-World Backend Engineering
subscribe via RSS