Software Engineering

Building RPC Systems That Don't Break

Lessons from implementing robust RPC systems in Go. How to handle concurrency, timeouts, and serialization without getting stuck. Real problems and practical solutions.

January 31, 2026

CGO: Go's Bridge to C

Learn how CGO enables Go programs to call C code and vice versa. Understand memory models, type conversions, cross-platform compilation, and the internal mechanisms that make C integration possible in Go applications.

January 31, 2026

Channels and Select

How Go channels work under the hood including buffered and unbuffered channels implementation details and how the select statement handles multiple channel operations with random polling order.

January 31, 2026

Coding Tips That Actually Matter

Practical coding techniques for Go development focusing on error handling, channel usage, and interface design patterns that improve code maintainability and reduce bugs.

January 31, 2026

Common Concurrency Patterns in Go

Essential Go concurrency patterns including request-response, single state holder, producer-consumer, pipeline processing, worker pools, and event-driven systems. Learn how to build robust concurrent applications using channels and goroutines effectively.

January 31, 2026

Concurrency Programming Essentials

Key principles for concurrent programming including critical section management, timeout handling with context, and avoiding common memory leak pitfalls in Go applications.

January 31, 2026

CPU Cache and Why It Matters for Performance

CPU caches work in blocks called cache lines, usually 64 bytes each. This explains why arrays beat linked lists and how false sharing creates hidden performance costs across CPU cores.

January 31, 2026

Error Handling in Go

Go's error handling uses an interface with a single Error method. When panic occurs, control immediately returns up the call stack until runtime unless recovered. Runtime panics cannot be recovered.

January 31, 2026

FastHTTP: Building High-Performance HTTP Servers

Techniques for building faster HTTP servers including buffered responses, lazy header parsing, slice-based key-value storage, request context reuse, and DNS caching with their trade-offs.

January 31, 2026

FastJSON's Hidden Costs

FastJSON trades safety for speed through memory reuse and custom parsing. While it handles simple cases well, these optimizations create problems with large JSON objects and mixed string escaping scenarios.

January 31, 2026