Go Concurrency Patterns I Use in Every Service
Worker pools, fan-out/fan-in, pipelines, and the cancellation discipline that keeps Go services predictable under load.
Backend coverage in this archive spans 15 posts from Nov 2016 to Aug 2022 and leans into practical engineering craft: interfaces, testing, and maintainable implementation details. The strongest adjacent threads are go, architecture, and performance. Recurring title motifs include go, patterns, api, and backend.
Worker pools, fan-out/fan-in, pipelines, and the cancellation discipline that keeps Go services predictable under load.
Cache-aside, write-through, invalidation strategies, and the failure modes that will wake you up at night. With Go examples.
Rate limiting algorithms, implementation tradeoffs, and practical lessons from building limiters for high-traffic APIs at a real-time messaging company.
Most Postgres performance problems are indexing problems. The rest are vacuum problems. Here's how to find and fix both.
API versioning is a maintenance commitment, not a design exercise. URL paths win for public APIs, headers for internal ones. The real discipline is not versioning -- it's avoiding breaking changes in the first place.
Queues look simple on a whiteboard. Then you deploy them. Here are the messaging patterns I've learned the hard way across three startups, with Go code and real failure stories.
Battle-tested PostgreSQL tuning from running fintech and startup workloads: connection pooling, memory sizing, index discipline, vacuum management, and the queries that tell you what's broken.
Hard-won lessons on designing HTTP APIs that survive real integrations, drawn from building fintech and mobility platforms.
Hard-won patterns for reliable background job processing -- queues, retries, idempotency, and the failures that taught me to care about all three.
Algorithms, headers, and deployment patterns for rate limiting APIs -- drawn from building financial data services at the fintech startup.
Practical patterns for squeezing performance out of Go services — profiling, allocation control, bounded concurrency, and HTTP/DB tuning from real production work.
After a year running GraphQL at the fintech startup, here's what the conference talks leave out.
I write Go every day at the fintech startup. Here's why I've been spending evenings with Rust, what impressed me, and where it still hurts.
What backend engineers actually need to know about ML in production -- from someone who builds NLP pipelines for financial news.
How Go became the default backend language at Dropbyke and a fintech startup, what it replaced, and the honest tradeoffs we accepted along the way.