0x55aa

Blog

Thoughts on cybersecurity, open source, SDR, and technology experiments.

934 posts
cachingredis

๐Ÿ˜ Cache Stampede: The Thundering Herd That Eats Your Database

Your cache TTL expires at 3am. Ten thousand requests notice at the exact same millisecond. All ten thousand miss, and all ten thousand politely ask your database to compute the same expensive thing at once. This is how a cache โ€” the thing protecting your database โ€” becomes the thing that kills it.

Aug 13, 2026
6 min read
Read more

๐Ÿท๏ธ Encryption Context: The KMS Field That Notices When Your Ciphertext Wanders Off

KMS lets you attach a plaintext label to every encrypt/decrypt call, and if that label doesn't match at decrypt time, KMS refuses โ€” even with a perfectly valid key. That's encryption context, and it quietly closes a hole most envelope-encryption setups leave wide open.

Aug 13, 2026
5 min read
Read more

๐Ÿ™ˆ Secrets in IaC: The Variable That Outs Itself

Marking a Terraform variable sensitive = true feels like closing the curtains. It doesn't. Here's where secrets actually leak out of infrastructure-as-code, and the boring plumbing that stops it.

Aug 13, 2026
5 min read
Read more

๐Ÿ›Ž๏ธ BFLA: When 'Admin Only' Just Means 'Admin Usually'

BOLA gets all the OWASP fame for letting you peek at someone else's data. Its quieter sibling, Broken Function Level Authorization, is the one that lets a regular user call an admin endpoint directly and quietly promote themselves. Same root cause, much scarier blast radius.

Aug 12, 2026
5 min read
Read more
messagingqueues

๐Ÿ“ฎ Pub/Sub vs Queues: Picking the Right Primitive (Before Your Architecture Picks It For You)

Everyone reaches for \"a message broker\" like it's one thing. It isn't. Queues and pub/sub solve different problems, and picking the wrong one doesn't fail loudly โ€” it just quietly rots your architecture for the next two years.

Aug 12, 2026
6 min read
Read more
ci-cdgithub-actions

๐Ÿƒ Self-Hosted Runners: When They're Worth the Trouble (and When They're Just a Second Job)

GitHub-hosted runners are boring in the best way. Self-hosted runners promise speed, cache locality, and cheaper minutes โ€” and quietly hand you a fleet to patch, secure, and babysit. Here's how to tell if the trade is actually worth it.

Aug 12, 2026
6 min read
Read more

๐Ÿ” Password Storage in 2026: Why Your bcrypt Calls Are an Antique

bcrypt got us through two decades of password breaches admirably, but it has a blind spot GPUs and ASICs have been happily exploiting for years. Here's why argon2id is the actual right default now, and how to migrate without forcing a mass password reset.

Aug 11, 2026
5 min read
Read more
kubernetesreliability

๐Ÿšง Pod Disruption Budgets: The YAML That Stands Between You and a 3AM Page

Node upgrades and cluster autoscaler scale-downs are supposed to be boring. Without a PodDisruptionBudget, Kubernetes is happy to evict every replica of your app at once to get there. Here's how PDBs actually work, where they quietly do nothing, and the mistakes that turn a routine drain into an incident.

Aug 11, 2026
5 min read
Read more

๐Ÿšฆ Zero-Downtime Database Migrations: The Expand/Contract Two-Step

Adding a NOT NULL column feels harmless until it locks a production table mid-deploy and your API starts timing out. Here's the expand/contract pattern that lets you change a live schema without anyone noticing โ€” except the one time I forgot step three.

Aug 11, 2026
6 min read
Read more

๐Ÿ—๏ธ Multi-Arch Docker Builds: Buildx and the Great ARM Reckoning

Your laptop is ARM, your CI runner is ARM, and half your fleet is still x86 because nobody ever revisited that assumption. Buildx makes multi-arch images almost boring to produce โ€” right up until QEMU quietly triples your build time and nobody notices until the bill does.

Aug 10, 2026
5 min read
Read more
api-designhttp

๐Ÿšจ Your API's Errors Are a Choose-Your-Own-Adventure Novel (RFC 7807 Fixes That)

Every service on your team invents its own error shape โ€” {error}, {message}, {err.msg}, a stack trace in prod if you're unlucky. RFC 7807 Problem Details gives you one boring, predictable format, and boring is exactly what error handling should be.

Aug 10, 2026
5 min read
Read more

๐Ÿฏ Honeypots for the Practical Dev: Catching Attackers With a Fake Admin Panel

You don't need a threat-intel team or a research lab to run a honeypot. A fake login form, a canary API key, and a webhook are enough to turn 'we got breached and found out three weeks later' into 'we got pinged in Slack while the attacker was still poking around.'

Aug 09, 2026
6 min read
Read more
1 / 78