The CPU Cost of Protobuf Varints in Go
Do fixed-size integers serialize faster than varints? We benchmark the CPU overhead of continuation-bit parsing using Go, vtprotobuf, and hyperpb.
Recent content on kmcd.dev
Do fixed-size integers serialize faster than varints? We benchmark the CPU overhead of continuation-bit parsing using Go, vtprotobuf, and hyperpb.
I built protojsonx to measure how much of Go’s ProtoJSON overhead comes from runtime reflection.
gRPC-Web should have been the pressure that made gRPC simpler, more inspectable, and better suited for the web.
Using Buf’s hyperpb to speed up FauxRPC’s runtime-loaded Protobuf request path.
Stop writing mock stubs by hand. How FauxRPC uses smart proxying, reflection, and CEL to automate your API testing.
Announcing protobuf.kmcd.dev, an interactive explainer and playground for exploring the binary details of Protocol Buffers.
A protobuf-first documentation browser for APIs that need clearer generated docs.
A dive into Shirow Masamune's original Ghost in the Shell manga, its intricate world-building, and its lasting impact on sci-fi.
The hidden performance cost of dynamic Protobuf in Go.
Why the networking world built its own data modeling language and what software engineers can learn from it.
Bringing Go libraries to life with WebAssembly.
How a live BGP map evolved into an interactive explainer on internet routing.
Reflecting on two years of ConnectRPC: How it evolved from a gRPC alternative to a complete API ecosystem.
Building for Scale: Why contract-based APIs are the future.
Why naming is about navigation, not just aesthetics, especially in a multi-repo world.
How Protobuf unknown fields enable seamless schema evolution and robust middleware.
A seamless session update turns every customer's browser into an infinite loop cannon.
Stop hand-writing test fixtures
Why I default to this tool for every project
The team attempts another text-based standup, this time with management present. It goes significantly worse than the first one.
More HPACK and using http.Request and http.Response
A tired sysadmin accidentally deletes the production database and discovers that all five backup mechanisms have failed.
Decoding HPACK and the evolution of the HTTP header
Building a cool looking, real-time BGP map
Diving into the binary framing layer and byte-shifting in Go
A vibe-coder attempts to provision a supercomputer to host a crypto-based to-do list app.
Mapping global Internet infrastructure and routing dominance over time
The 'Work-Life Balance' Patch
Re-building the web in Go to learn more about it
The lead is away, so the team holds standup in IRC. It quickly descends into abstract art and magenta-colored login pages.
When the web became whole.
WHOIS is dead. To memorialize this piece of internet history, let's build a tiny implementation from scratch.
Can months be fixed?
Is there a correct order when encrypting and compressing data?
Why I felt guilty using AI art, and chose to embrace a more personal, code-driven creative process.
Map your route through the Internet
Why I love asking candidates to explain how the internet works.
A Tool to Ease Your Schema Journey
How to avoid breaking gRPC clients.
Explore the history of Morse code, from its dits and dahs to the first transatlantic cable. Discover how this elegant system was the original binary and test your own skills with an interactive speed typer.
Or How I Got Thousands of Mastodon Users to Whistle at Their Screens
An all-new interactive map of the Internet, showing the evolution of undersea cables and internet exchanges with year-by-year animation and detailed statistics.
We need another HTTP verb. I'll explain why.
Taking a peek under the covers of making a daily puzzle game
Effortless input validation for Protobuf! Protovalidate lets you define rules directly in your .proto files.
Are monoliths cool again?