







If you’ve ever wondered why your Go service is eating memory like it’s at an all-you-can-eat buffet, chances are you haven’t optimized your Protocol Buffers usage. I’ve been there, watching heap profiles with the kind of horror usually reserved for checking your bank account after a night out. But here’s the good news: Protocol Buffers in Go can be wickedly fast and memory-efficient when you know the tricks. Let me walk you through the optimization techniques that transformed my services from memory-hungry monsters into lean, mean, serialization machines.
Protocol Buffers
Protocol Buffers are language-neutral, platform-neutral extensible mechanisms for serializing structured data.
Preserving Order in Concurrent Go Apps: Three Approaches Compared
Concurrency breaks ordering by design, but sometimes we need both. Explore three methods to preserve order in concurrent Go applications, from standard ReplyTo channels to sophisticated permission passing, with benchmarks and real-world trade-offs.

Making SQLite faster in Go
Make sqlite faster with a connection pool and prepared statements.
Go Web Programming
Build scalable, high-performance web apps in Go with modern design principles.

Building a simple load balancer in Go
Load balancers are crucial in modern software development. If you've ever wondered how requests are...

Notes on structured concurrency, or: Go statement considered harmful — njs blog
Every concurrency API needs a way to run code concurrently. Here's some examples of what that looks like using different APIs:
Go 1.7 is released - The Go Programming Language
Go 1.7 adds faster x86 compiled code, context in the standard library, and more.


Thorsten Ball - Why threads can't fork
There is an interesting thread on the Go issue tracker about daemonizing processes. Most of the thread is not about daemonizing processes though, but more about why Go has no Fork() function which you can call directly in your code. The first time I read through it I was wondering and saying to myself: “Yeah, why is there no Fork()? It surely can’t be that hard to implement.” After all you can already call system calls with the syscall package. As I read more and more I realized that the problem is not implementing Fork() per se, but rather implementing Fork() to work safely in a multi-threaded environment, which most Go programs are. So I tried to find out why.
Vibe-coded Go static analysis tools
Ideas are now a major bottleneck for vibe-coding. There are whole categories of software that simply don’t occur to me to write. Philip Zeyliger pointed me at one: Go static analysis tools. These are great candidates: easy to describe easy to test high value low risk He created a checker that requires slog.InfoContext instead of slog.Info when a context is available, to improve our telemetry/observability. I followed up with a checker that lets you annotate a Go struct as requiring complete, explicit annotation.
Protocol Buffers - OpenStreetMap Wiki
Protocol Buffers (Protobuf) is a data format developed by Google as a more efficient alternative to XML.
Integrating gRPC with the Homa Transport Protocol - John Ousterhout, Stanford University
How HTTP/2 Works and How to Enable It in Go
HTTP/2 solves head-of-line blocking at the application layer by multiplexing multiple streams over a single TCP connection. While HTTP/1.1 requires requests to be processed sequentially, HTTP/2 allows parallel processing through independent streams, each with its own ID. The Go standard library supports HTTP/2 out of the box when using HTTPS, and with some configuration, it can work over plain HTTP too

Latency optimization | OpenAI API
Improve latency across a wide variety of LLM-related use cases.

Signals and Threads
Stephen Dolan works on Jane Street’s Tools and Compilers team where he focuses on the OCaml compiler. In this episode, Stephen and Ron take a trip down memory lane, discussing how to manage computer memory efficiently and safely. They consider trade-offs between reference counting and garbage collection, the surprising gains achieved by prefetching, and how new language features like local allocation and unboxed types could give OCaml users more control over their memory.

b5 (@b5.bsky.social)
Ok, a rundown of how we get p2p ATProtocol going: 1. Run *standard* ATProto services, locally 2. Use p2p to holepunch TCP connections 3. Add a thin layer for peering management Bundle all that up in an app, and we have a recipe for adding resilience & scaling to Bluesky. 🧵 teim: