Kevin McDonald

@kmcd
13 Followers
2 Following
58 Posts
Software Engineer. I post about backend programming, and nonsense. 
🇺🇸 living in 🇩🇰

Websitekmcd.dev
LanguagesEnglish, Danish (beginner)
🪧 Unknown Fields in Protobuf: How Protobuf unknown fields enable seamless schema evolution and robust middleware.
https://kmcd.dev/posts/protobuf-unknown-fields/
#Protobuf #Grpc #Api #Microservices #Datapipelines #Connectrpc #Go #Typescript #Architecture
Unknown Fields in Protobuf

How Protobuf unknown fields enable seamless schema evolution and robust middleware.

kmcd.dev
🪧 IRC Log: Reactionary: A seamless session update turns every customer's browser into an infinite loop cannon.
https://kmcd.dev/posts/irc-log-reactionary/
#Humor #Irc #React #Incident
IRC Log: Reactionary

A seamless session update turns every customer's browser into an infinite loop cannon.

kmcd.dev
🪧 Faking protobuf data in Go: Stop hand-writing test fixtures
https://kmcd.dev/posts/faking-protobuf-data-in-go/
#Protobuf #Grpc #Testing
Faking protobuf data in Go

Stop hand-writing test fixtures

kmcd.dev
🪧 Y'all are Sleeping on Mise-en-Place: Why I default to this tool for every project
https://kmcd.dev/posts/mise-en-place/
#Development #Tooling #Programming #Devops #Productivity
Y'all are Sleeping on Mise-en-Place

Why I default to this tool for every project

kmcd.dev
🪧 IRC Log: Standup 2: The team attempts another text-based standup, this time with management present. It goes significantly worse than the first one.
https://kmcd.dev/posts/irc-log-standup-2/
#Humor #Irc #Engineering #Standup
IRC Log: Standup 2

The team attempts another text-based standup, this time with management present. It goes significantly worse than the first one.

kmcd.dev
🪧 HTTP/2 From Scratch: Part 4: More HPACK and using http.Request and http.Response
https://kmcd.dev/posts/http2-from-scratch-part-4/
#Go #Http2 #Protocols #Networking
HTTP/2 From Scratch: Part 4

More HPACK and using http.Request and http.Response

kmcd.dev
IRC Log: rm -rf /var/opt/gitlab/postgresql/data

The Incident Log: January 31, 2017 [23:00] *** Topic: DB Replication Lag | Status: 🔴 Critical [23:05] *** tired_sysadmin has joined [23:10] <tired_sysadmin> Replication is stuck again. The secondary node (db2) is refusing to sync. [23:11] <tired_sysadmin> I’m going to wipe the data directory on db2 and let it pull a fresh copy from master. [23:12] <tired_sysadmin> rm -rf /var/opt/gitlab/postgresql/data [23:12] <tired_sysadmin> Weird. It’s taking a while. Usually empty directories delete instantly. [23:13] <helper_dev> Hey, why did the website just go 500? [23:13] <tired_sysadmin> … [23:13] <tired_sysadmin> I’m looking at my terminal prompt. [23:14] <tired_sysadmin> It says root@db1. [23:14] <helper_dev> db1 is Prod. You are deleting Prod. [23:15] <tired_sysadmin> CTRL+C CTRL+C CTRL+C [23:15] <tired_sysadmin> Okay, I stopped it. How much is left? [23:16] <helper_dev> Checking… The directory is 4.5KB. [23:16] <tired_sysadmin> We had 300GB of data. [23:17] <helper_dev> Okay, don’t panic. We have 5 different backup mechanisms. Let’s check S3. [23:20] <helper_dev> S3 bucket is empty. The backup script has been failing silently since version 8.1. [23:21] <tired_sysadmin> Check the Azure disk snapshots. [23:22] <helper_dev> Not enabled. [23:23] <tired_sysadmin> …LVM snapshots? [23:24] <helper_dev> We take them every 24 hours. We just lost 6 hours of data. [23:25] <tired_sysadmin> I am going to live stream the restoration on YouTube so people don’t kill us. Postmortem of database outage of January 31

kmcd.dev
🪧 HTTP/2 From Scratch: Part 3: Decoding HPACK and the evolution of the HTTP header
https://kmcd.dev/posts/http2-from-scratch-part-3/
#Go #Http2 #Protocols #Networking
HTTP/2 From Scratch: Part 3

Decoding HPACK and the evolution of the HTTP header

kmcd.dev
🪧 Building a Live BGP Map: Building a cool looking, real-time BGP map
https://kmcd.dev/posts/live-internet-map/
#Dataviz #Internet-map #Internet #Networking #Bgp #Map #World #Infrastructure #Ebitengine #Go
Building a Live BGP Map

Building a cool looking, real-time BGP map

kmcd.dev
🪧 HTTP/2 From Scratch: Part 2: Diving into the binary framing layer and byte-shifting in Go
https://kmcd.dev/posts/http2-from-scratch-part-2/
#Go #Http2 #Protocols #Networking
HTTP/2 From Scratch: Part 2

Diving into the binary framing layer and byte-shifting in Go

kmcd.dev