News
How to Build a Production-Ready Go Diagnostic Rule
Build and ship a production-ready Go diagnostic rule using go/analysis.
Go: The Testing/Synctest Package Explained
Go 1.25 introduces the `testing/synctest` package. This package can significantly simplify writing tests for concurrent, asynchron...
Go Builds Packages, Not Files — Here’s Why That Matters
Go's build system isn't something to fight or work around. It's an API in its own right - one that rewards understanding.
Building a Better Debugging Experience: A Deep Dive into Capturing and Replaying...
Debugging microservices is hard because it's difficult to see the data flowing between them. We built a "Request Capture Engine" t...
Debugging Microservices: A Journey into Distributed Debugging
This post describea framework for debugging microservices using gRPC interceptors to automatically collect and propagate debug inf...
Go's New Experimental Packages: What to Know
Go 1.25 introduces new experimental packages for encoding and unmarshaling of Go types. The new packages are not visible by defaul...
Flight Recorder: A New Go Execution Tracer
The flight recorder is just the latest addition to the Go developer’s toolbox for diagnosing the inner workings of running applica...
Clean Code: Concurrency Patterns, Context Management, and Goroutine Safety [Part...
This final installment in the Clean Code in Go series breaks down how to write safe, idiomatic concurrent Go code using context, g...
Go’s 16th Anniversary and the Major Highlights of 2025
Go 1.24 and 1.25 were released in February and August of this year, respectively. Go is the most productive language platform for...
Clean Code in Go (Part 4): Package Architecture, Dependency Flow, and Scalabilit...
- Use `internal/` for private business logic- Define interfaces where you use them, not where you implement- Keep import graph f...
