TechHub
-
HTTP/3 has been shipping in browsers for years now, and it's still frequently mischaracterized as "HTTP/2 over UDP." That description is close enough to be misl
-
The first time I ran a migration on a production database with a live application, I added a column with a default value. It locked the table for 90 seconds. Th
-
The first time someone explained operators to me, they said "it's a controller that manages a custom resource." That's accurate and useless. The second explanat
-
I built a service-to-service API in REST/JSON for years, and it worked fine, but there was always a class of bugs I could never quite eliminate. The Go service
-
I have a folder of CSV exports I use for ad-hoc analysis. Twenty files, a few gigabytes total, and for years I loaded them into pandas, hit memory limits, and r
-
I put off learning eBPF for two years because every introduction started with "it's a virtual machine in the kernel" and then got into verifier details. The men
-
For years, distributed tracing was a Datadog or New Relic feature, priced per host and locked to a vendor SDK. OpenTelemetry changed that. The instrumentation i
-
Nginx and Caddy both require you to write a config file listing every route. Traefik doesn't. It watches the Docker socket, reads container labels, and builds t
-
I built a home NAS on ext4 with mdadm RAID five years ago, and it worked right up until a disk failed, the rebuild hit an unreadable sector on another disk, and
-
I used rsync and tar for backups for years. They work, but every time I needed to restore something, I held my breath. Did the incremental sync catch everything
-
I built a transactional email system for a small SaaS two years ago. The emails went out. Some arrived. Some went to spam. Some disappeared entirely. I spent th
-
I used Docker for four years before I understood what it actually does. The mental model I had was "lightweight VM," which is wrong in every direction that matt
-
I've used Dropbox, Google Drive, and iCloud Drive at various points, and they all solve the same problem well. What they don't solve is syncing a 200GB folder o
-
I resisted jq for a year. The syntax looked like line noise, and I could always pipe into Python for anything complicated. Then I hit a debugging session where
-
Every project I've joined in the last five years has had a Makefile, and half of them were wrong. They were either a thin wrapper around npm run that added noth
-
A binary from a vendor fails on the production server and works on your laptop. There's no source, no logs, and no documentation. This is where strace earns its
-
I ran Pi-hole for a year before adding Unbound, and the difference isn't what I expected. It's not that ads suddenly stopped — Pi-hole handles those fine on it
-
I bought a Raspberry Pi 4 for Home Assistant, followed the official install guide, had it running in twenty minutes, and then spent three weekends getting it to
-
I spent a weekend building a WireGuard setup for my home lab. It worked, right up until my ISP rotated my public IP and I had to update the endpoint on every cl
-
The default postgresql.conf is tuned for a machine with 128 MB of RAM from 2004. Every production Postgres instance runs with settings that are wrong for its ha
-
Every team I've joined has had a different Git workflow, and every one of them had someone quietly rebasing pushed commits while everyone else pretended not to
-
Two Nginx features sit in the "everyone should use this, almost nobody does" category: proxy caching and rate limiting. Both are maybe ten lines of config. Both
-
Most uptime monitoring services charge per monitor. I have twelve things I want to check, and somewhere around the fourth monitor the pricing starts to feel abs
-
I ran OpenVPN on a cheap VPS for years. It worked, but connecting took fifteen seconds, and the config file was four hundred lines of certificate chains I never
-
I used to keep my dotfiles in a normal Git repo and symlink them into place with a shell script. It worked, but every new machine meant cloning, running the scr
