Latest Posts

Living Closer to the Internet

In my recent update to the Internet Map, I expanded the BGP layer on map.kmcd.dev to show all attributed IP address space globally instead of just the largest hubs. On the map, blue dots are cities with public Internet Exchange Points (IXPs) and purple dots are cities that only announce BGP IP space. Once I put all of the smaller cities on the globe, I noticed a lot of big purple dots sitting right on top of major fiber lines with millions of IPs and no local IXP. Blue IXP cities and purple... Click to read more →

Visualizing the Internet (2026) - Part 2

In my February post about the Internet Infrastructure Map, I ended with “See You Next Year.” I usually only touch the map once a year when I pull new data and write up an annual update. This year I kept tinkering with it anyway, and enough has changed that it didn’t feel right waiting until next February. You can check out the current version at map.kmcd.dev. The 3D globe view @ map.kmcd.dev 3D Globe Up until now, the map used Leaflet. The tileset I was using with Leaflet dropped its free tier... Click to read more →

gRPC vs REST Is the Wrong Question

I’ve seen the same argument over and over on Twitter, LinkedIn, Reddit, etc. Where should you use JSON/HTTP APIs and where should you use gRPC? The same exact advice is almost always given: use HTTP/JSON for public or browser-facing APIs, and gRPC for microservices and infrastructure such as etcd and containerd. The reasons for this advice are valid: HTTP/JSON is trivial to set up, inspect in DevTools, cache, proxy, and hit from a browser. gRPC and Protobuf do give you schemas, generated... Click to read more →

Joining Buf

I’ve started working at Buf Technologies! This will come as no surprise to those who have been following me for a while. I’ve been writing about schema-first development, have made tools to enable protobuf-driven development (FauxRPC and protoc-gen-connect-openapi), and I’ve been a big fan and user of the ConnectRPC stack for a long time. I joined Buf to work in developer relations. This is a change from what I have been doing. I’ve usually been making in-house tooling and API services, and... Click to read more →

Let’s Talk About Streaming Data on the Web

“Streaming data” on the web might mean consuming a response as bytes arrive, receiving server events, using a long-lived bidirectional channel, or sharing one connection between independent streams. These workloads have different requirements, but we often reduce the choice to HTTP requests or WebSockets. I want to look at the available options and then experiment with WebTransport. I came at this from gRPC: could WebTransport make client and bidirectional streaming practical in a browser? That... Click to read more →

 Featured Posts

Visualizing the Internet (2026) - Part 2

In my February post about the Internet Infrastructure Map, I ended with “See You Next Year.” I usually only touch the map once a year when I pull new data and write up an annual update. This year I kept tinkering with it anyway, and enough has changed that it didn’t feel right waiting until next February. You can check out the current version at map.kmcd.dev. The 3D globe view @ map.kmcd.dev 3D Globe Up until now, the map used Leaflet. The tileset I was using with Leaflet dropped its free tier... Click to read more →

Building a Live BGP Map

Right now, thousands of routers are arguing about how to reach each other. That’s expected. It’s how the Internet works. This website wouldn’t load without it. BGP (Border Gateway Protocol) continuously announces and withdraws prefixes, adjusting how traffic moves globally. Most people see URLs and apps; routers see prefixes and AS paths. I made a map that lets us listen in on this conversation, but in a relaxing, aesthetically pleasing way. In my last post, I mentioned a websocket-based... Click to read more →

Visualizing the Internet (2026)

For the past few years, I’ve been trying to make the physical reality of the Internet visible with my Internet Infrastructure Map. This map shows the network of undersea fiber-optic cables along with peering bandwidth, grouped by city. I update the map annually, but I don’t want to just pull the latest data and call it a day. In this post I discuss how the map evolved this year and what I did to make it happen, but you can skip to the good part by viewing it here: map.kmcd.dev. For the 2026... Click to read more →