Go WaitGroup.Go in 1.25: When I Still Reach for errgroup
Go 1.25 added WaitGroup.Go, which removes the Add and Done boilerplate. Here is the before and after, plus when errgroup and SetLimit are still the…
Go 1.25 added WaitGroup.Go, which removes the Add and Done boilerplate. Here is the before and after, plus when errgroup and SetLimit are still the…
Go 1.27 lets methods declare their own type parameters. I converted a 14-function helper package, hit the interface rule that still says no, and reverted…
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.
I pulled Gin out of a service that had eleven routes. Here is how I now choose between net/http, chi, Gin, Echo and Fiber, with…
Golang context past WithCancel: how WithCancelCause, WithoutCancel and AfterFunc fixed three real production bugs for me, with before and after Go code.
Go 1.23 range-over-func lets you skip slices you throw away. Here is how I rewrote real iterators with iter.Seq, when it helps, and when a…
Rust vs Go, decided by what you are building rather than benchmarks: where the borrow checker pays off, where Go's compile times win, and when…
I wrote the same map helper four times before using Go generics. Where type parameters earn their keep, where I backed them out, and what…
The Go error handling patterns I actually ship in 2026: wrapping with %w, errors.Is vs errors.As, and killing the log-and-return anti-pattern.