Goroutine leaks in Go: detect, understand, fix
Goroutine leaks don't crash the program — they silently degrade it. The 4 patterns that systematically leak, detection with pprof and goleak, fixes with context and channels.
Lessons learned, problems and solutions
Goroutine leaks don't crash the program — they silently degrade it. The 4 patterns that systematically leak, detection with pprof and goleak, fixes with context and channels.
The Go proverb "accept interfaces, return structs" explained with production code. When it applies, when it hurts, and the concrete cases most tutorials skip.
Three Go error patterns explained through a concrete ClaudeGate code review case. When to create a sentinel error, an error struct, or just use fmt.Errorf.
Propagating errors from goroutines, collecting all failures from a batch, and surviving panics without crashing the program. The essential patterns for robust concurrent code.
Mastering Go channels: buffered vs unbuffered, select, fan-out, fan-in and worker pool. The essential patterns for making your goroutines communicate without race conditions.
Learning Go parallelism from scratch: goroutines, sync.WaitGroup, the classic loop closure trap and the race detector. With a concrete example — 10 URLs in 1s instead of 10s.
The concurrency vs parallelism distinction explained with a simple analogy, and how Go + Event Sourcing / CQRS leverage both: aggregate single-writer, fan-out projections, pipeline with backpressure.
Four words everyone mixes up. What they precisely mean, how Go expresses them, and how synchronous/asynchronous and concurrent/parallel work together.
Production-ready Go in 2026: middleware patterns, concurrency pitfalls, project conventions. The honest guide from PHP/Python/JS to idiomatic Go.
A Bash script that displays Claude Code quotas in real time in the status bar — context, session, weekly quotas. Zero workflow interruption.