Kevin McDonald

kmcd.dev · Personal blog · on HN since 2024

Kevin McDonald writes about HTTP protocol history, gRPC, Protobuf and networking tools, often building them from scratch in Go.

What HN saysHN links it for gRPC and HTTP/3 posts; one commenter cites his Protobuf unknown fields post in a technical discussion.
15HN people shared it
1linked it in comments
26stories submitted
450story points
3 months agolast shared
2024people per year2026

Most-shared posts

  1. 1
    Y'all are sleeping on HTTP/3
    3 people · 43 points · first shared 2024 · 16 comments on HN
  2. 2
    HTTP/1.0 from Scratch
    3 people · 10 points · first shared 2024 · 1 comments on HN
  3. 3
    gRPC over HTTP/3
    3 people · 9 points · first shared 2024 · 1 comments on HN
  4. 4
    HTTP/0.9 from Scratch (2024)
    2 people · 7 points · first shared 2024 · discussion on HN
  5. 5
    gRPC: The Bad Parts
    1 people · 228 points · first shared 2024 · 223 comments on HN
  6. 6
    gRPC: The Ugly Parts
    1 people · 111 points · first shared 2024 · 84 comments on HN
  7. 7
    Traceroute Tool from Scratch in Go
    1 people · 19 points · first shared 2025 · 1 comments on HN
  8. 8
    gRPC: The Good Parts
    1 people · 5 points · first shared 2024 · discussion on HN
  9. 9
    Beating Go's Encoding/JSON with Schema-Guided ProtoJSON
    1 people · 2 points · first shared 2026 · discussion on HN
  10. 10
    gRPC-Web Should Have Fixed gRPC
    1 people · 2 points · first shared 2026 · discussion on HN
  11. 11
    Working with Protobuf in 2024
    1 people · 2 points · first shared 2024 · 1 comments on HN
  12. 12
  13. 13
  14. 14
    Morse Code
    1 people · 2 points · first shared 2025 · 1 comments on HN
  15. 15
    The CPU Cost of Protobuf Varints in Go
    1 people · 2 points · first shared 2026 · discussion on HN

What HN people wrote when they linked it

PessimalDecimal · 2026-02-14
My guess is there's more to that story than just "protobufs don't forward unknown fields" because that's not how they work be default. Take a look at https://protobuf.dev/programming-guides/proto3/#unknowns. https://kmcd.dev/posts/protobuf-unknown-fields/ discusses the scenario you're hinting at. It's possible in the story you mention that each of those ~20 internal protos were different messages, and each hop between backends was translating data between nearly identical schemas. In that case, they'd all need to be updated to transport that data. But that's different and the result of those engineers' choice for how to structure their service definitions.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close