Skip to main content

Blog — Page 2

Reading List 2025: Books That Changed How I Build SoftwareSix books from 2025 that actually changed how I approach design, code, and collaboration — with specific takeaways from each.
book-notesreflection
1m
Structured Logging: The One Observability Investment That Paid OffSwitching from text to structured JSON logs made debugging faster. Adding trace IDs made it instant. Here's the migration.
observabilitygo
1m
Using Branded Types to Prevent Unit Confusion in TypeScriptWhen a stringly-typed user ID and order ID look the same to the compiler, bad things happen. Branded types catch these at compile time.
typescriptsystem-design
1m
Regaining Deep Work After Moving to a Distributed TeamAsync communication is great for flexibility but terrible for focus when every Slack notification feels urgent. Here's what I changed.
careerreflection
1m
Debugging a CPU Spike on Linux: A Practical WalkthroughA service's CPU spiked to 100% every hour. strace showed the culprit in 30 seconds. Here's the full investigation from top to flamegraph.
linuxperformance
1m
Why Our HPA Was Scaling Too Slowly (and How We Fixed It)The Horizontal Pod Autoscaler was reacting 4 minutes late. The fix was one YAML field we'd ignored.
kubernetesperformance
1m
TIL: jq Recipes for Everyday JSON WranglingFive jq patterns I use daily — from extracting fields to reshaping nested JSON into CSV.
tilbash
1m
Four Redis Caching Strategies and When to Avoid ThemCache-aside, read-through, write-through, and write-behind — each solves a different problem. Here's where each one broke for us.
redisperformance
1m
Design Tokens in Tailwind: A System That ScalesRaw Tailwind classes are fast to write but hard to maintain. Design tokens bridge the gap between designer intent and utility classes.
tailwindcss
1m
Zero-Downtime Database Migrations: Our Rollback StrategyA failed migration doesn't have to mean downtime. Here's how we structure migrations so every change is safely reversible.
postgresqlinfrastructure
1m