Notes on Go, deployment, and whatever I’m currently wrestling with.
Short write-ups about things I’ve figured out — usually the hard way.
Mostly Go, Linux, and deployment oddities. Each post is a real lesson
from a real project, not a “10 things you didn’t know about X” roundup.
You’ll see a lot of posts about the lunch-tracker
backend and the portfolio itself — those
two systems are where most of the work happens.
Looking for something specific? Hit /search/, or browse by
tags.
The bug that locked every visitor to one domain
Hugo’s baseURL makes every internal link absolute. That’s fine for one domain. The moment you serve the same site from two domains, it’s a navigation bug.
Atomic writes in Go: temp file, fsync, rename
Every write to data.json in lunch-tracker goes through a temp file in the same directory, an explicit fsync, then a rename. Three lines of reasoning turn that into correctness.
60 forced reflows a second: fixing the matrix rain
The first version of the matrix-rain canvas called getComputedStyle() every animation frame to read the active –neon-blue token. Three small changes turned 60 reflows/sec into zero.
Optimizing VPS Deployment: Binary Uploads vs Docker
How I optimized my VPS deployment strategy to save resources