DEVELOPER NEWS STREAM
Direct logs, engine updates, and framework notifications parsed from curated RSS feeds and announcements, updated hourly.

Gabriel AnhaiaDon't panic in a Go Library: Return the Error Instead
A panic in a Go library breaks the caller's contract. When Must-prefix is the exception, and how to convert a panic back to an error at the boundary.

Gabriel AnhaiaContext as the First Parameter: The Go Convention and Its Reasons
Why ctx leads in Go signatures, what does not belong inside it, how cancellation propagates, and why a Context struct field is a trap.

Gabriel AnhaiaPackage-Level State in Go: The Hidden Global That Wrecks Tests
Package vars and init() side effects make Go tests order-dependent and flaky. Here is how they hide, and how dependency injection kills them.

Gabriel AnhaiaGoogle's Go Style Guide: The Rules Worth Adopting on Any Team
Google's Go Style Decisions doc: nil slices, error wrapping, test names, field alignment. Which rules to adopt on any team, which to skip.

Gabriel AnhaiaThe Pipeline Pattern in Go: Composing Stages With Channels
Build Go pipelines from channel-connected stages: cancellation with context, closing channels correctly, and backpressure from unbuffered stages.

Gabriel AnhaiaWriting Go Doc Comments That godoc Renders the Way You Meant
Doc comments are a formatted language, not free text. Here is how godoc and pkg.go.dev parse yours, and how to write ones that render right.

Gabriel AnhaiaGo Error Strings: Lowercase, No Punctuation, and Why It Matters
Why Go error strings stay lowercase with no trailing period, how they wrap into sentences, and the vet and staticcheck rules that enforce it.

Gabriel AnhaiaSmall Interfaces in Go: How io.Reader and io.Writer Compose Everything
One method each, yet io.Reader and io.Writer wire up gzip, hashing, network, and files with no glue code. Here is why Go kept them this small.

Gabriel Anhaiaiota in Go: Enums, Bit Flags, and the Traps Beginners Hit
How iota really counts in Go: typed enums, bit-flag sets, skipping with _, and the gap-in-values bug that ships silently.

ahmet gedikExtracting Video Poster Frames at Scale with Go, FFmpeg, and Scene Detection
How we built a Go service that extracts representative poster frames from millions of videos using F

Omar RedaWhat Changed? How We Turned Production Change Blindness into a less than 10-Minute Answer
Most incidents aren't mysteries. They're changes. Here's how we built a service that captures...

Gabriel Anhaiago:generate in Go: Code Generation Without a Build System
How go:generate, Stringer, and mockgen replace reflection and hand-written boilerplate in Go, and how to keep generated files honest in CI.

Gabriel AnhaiaEffective Go in 2026: The Idioms That Still Decide Good Go Code
The Effective Go idioms that still separate good Go from bad in 2026: composition, small interfaces, error values, and sharing by communicating.

Gabriel AnhaiaAccept Interfaces, Return Structs: The Go Idiom, Correctly Applied
Why Go functions should take abstract inputs and return concrete types, where the rule breaks, and the testing payoff it buys you.

Gabriel AnhaiaGo Maps Iterate in Random Order on Purpose. Here Is How to Handle It
Go randomizes map iteration order on purpose. Why the runtime does it, how it breaks tests, and how to sort keys for stable output.

Gabriel AnhaiaUsing defer to Modify a Named Return in Go (Carefully)
The defer-closure-over-named-return trick wraps errors and rescues cleanup failures in Go. Here is why it only works with named returns.