Go idioms, runtime internals, concurrency patterns, and production lessons from high-throughput backend services.
2026
Apr
Designing Rate Limiters for Payment Systems
distributed-systems
838 words
How to build rate limiters that protect authorization infrastructure without rejecting legitimate traffic. Token bucket math, sliding window trade-offs, and the distributed coordination problem.
Understanding ISO 8583 Bitmap Parsing
payments
281 words
How payment networks encode field presence using primary and secondary bitmaps in binary messages.
Mar
Go Error Wrapping Patterns
go
57 words
Wrap errors with what you were trying to do, not what went wrong. The original error already answers the latter.
Consistent Hashing in Distributed Caches
distributed-systems
229 words
Why naive modular hashing breaks when nodes join or leave, and how consistent hashing fixes it.
Why slog Over zerolog
go
51 words
slog is stdlib, zerolog is faster but the gap has closed. For new projects, slog wins on API clarity and zero dependencies.
Feb
Why UUIDs Matter for Idempotency
payments
188 words
Using UUID v7 as idempotency keys in payment authorization to prevent duplicate processing.
2025
Dec
Go Maps Iteration Order
go
759 words
Go maps have no iteration order guarantee. Output that looks sorted is bucket layout coincidence, not language behavior.
Aug
Floating-Point Tolerance Testing in Go
go
880 words
When and why to use epsilon in floating-point comparisons, with practical Go examples and a reusable helper.
Runes, Bytes, and Graphemes in Go
go
398 words
len() counts bytes, []rune counts code points, neither matches what users see. Grapheme clusters are the unit humans actually read.
Jun
Go Was Never Bad
go
725 words
The common criticisms of Go were always overstated. Generics arrived, error handling is fine, and simplicity was always the point.
How Goroutine Stacks Grow and Shrink
go
1263 words
Goroutine stacks start at 2KB, double on overflow, and shrink during GC. The mechanics of Go's contiguous stack model.
May
Go Scheduler, Yield Points, and Infinite Loops
go
1326 words
When to use for{} vs goroutines, how the GMP scheduler cooperatively preempts, and why async preemption exists.
2024
Dec
The comparable Constraint in Go Generics
go
1292 words
Why comparable exists, when to use it over any, and the compile-time guarantees it provides for maps and equality checks.
What Happens Before main() in Go
go
1830 words
Package initialization order, init() functions, dependency ordering, and what the runtime does before your code runs.
Nov
Go Pointers and Memory Management
go
2383 words
Stack vs heap, pass-by-value semantics, escape analysis, garbage collection, and data race prevention with mutexes.
Go Constants Beyond the Basics
go
1367 words
Untyped constants, compile-time evaluation, big number precision, iota patterns, and the limitations that catch experienced developers.
Go's UTF-8 Identifier Limitation
go
876 words
Chinese characters work in Go identifiers but Tamil combining marks don't. A look at Unicode categories and the Go spec's design choice.