Golang Error Handling: The %w Mistake I Shipped for a Year
I wrapped Go errors with %v for a year and broke errors.Is without noticing. The golang error handling rules I follow now, with before and…
I wrapped Go errors with %v for a year and broke errors.Is without noticing. The golang error handling rules I follow now, with before and…
I found 41,217 leaked goroutines in one pprof dump. The Go concurrency patterns I actually ship in 2026: channel ownership, WaitGroup.Go, and errgroup.
The Go concurrency patterns I actually reach for in 2026: errgroup instead of sync.WaitGroup, context cancellation everywhere, worker pools without cargo cult.
Go 1.25 added WaitGroup.Go and a stable testing/synctest. Here are the Go concurrency patterns I actually use in 2026, and the boilerplate I deleted.
The Go error patterns I actually use in production: fmt.Errorf %w wrapping, sentinel vs typed errors, errors.Is vs errors.As, and errgroup at scale.