~/topics/go

go

everything written here about go — hexagonal architecture, sqlc over an orm, single-binary deploys, authorization, and the boilerplate tax you pay for all of it

go is what i write services in. it has been the day-job language at adidas and now at motogp, and it is what most of my own products run on.

what does this blog cover about go?

structure and the cost of structure, mostly. hexagonal architecture and whether the ceremony pays for itself. sqlc and pgx instead of an orm, because sql that fails at compile time beats sql that fails at 3am. shipping one self-contained binary with the migrations and config embedded in it. authorization — owner scoping, server-stamped ownership, the check that hides when you scatter it across layers. and the honest counterweight to all of it: the boilerplate tax, fourteen entities and an 890-line router.

the through-line is that go pushes back when you get clever, and most of these posts are about finding out where pushing back was right.

these are war stories, not tutorials. every one of them starts from something that broke, or something i built and then had to argue with myself about.

if you want the other half of the stack, the tools rather than the services, see rust — and why i didn’t leave go for rust for exactly where the line falls.