Issue #000 — Lessons from 3,000 incidents

Table of contents

Hiya! Starting this at a coworker’s suggestion. Not sure if it’ll be worth your time, but here we go.

A short digest of what I’ve read, written, or found interesting. If you’ve been around this site, you already know the theme: databases, distributed systems, platform shenanigans, and software patterns.

Wrote #

Read #

  • NilAway: Practical Nil Panic Detection for Go . Uber’s static analyzer for catching nil panics in Go. I found the process of tracing the fault lines quite interesting. In practice though, I ran into a ton of false positives. It also has a few limitations, like not being able to analyze complex code paths with deeply nested function calls.

  • Data Race Patterns in Go . Uber ran the race detector across their Go monorepo for six months. They wrote up the patterns behind the roughly 1,100 races they fixed. I’ve read it like 3 times. I love Go, but the concurrency footguns at scale demand higher-level abstractions than the primitives available. My biggest pet peeve is Go not having common constructs for basic structured concurrency . This results in extremely verbose code where it’s fairly easy to make mistakes.

  • What is a service mesh? I’ve been playing around with service meshes at home and wanted to explore a bit more. This was a fun intro.

Watched / Listened #

Aside #

I’ve been doing a ton of k8s munging these days, both on my homelab and at work. So revising the third edition of Kubernetes: Up and Running has been quite useful.