Anh Vo · Vietnam
A software engineer
who likes to understand things all the way down.
I work on both sides: writing code, and running the infrastructure it lives on.
I like to dig into a problem until I really understand it. Knowing why something works, or why it broke, helps me see the whole picture more clearly and handle the next one with more confidence. This site is where I write those things down, mostly so I don't forget them.
Posts
all 15 →- 3,500 connections to PostgreSQL, and almost none of them working Our Tornado app hit PostgreSQL's connection limit. When I looked closer, most of those connections were just sitting there, idle or stuck in a transaction.
- Why I write runbooks and playbooks A runbook tells you how to do a known task. A playbook tells you how to think when you don't know what's wrong yet. I needed both.
- VACUUM in PostgreSQL If PostgreSQL never overwrites a row, where do all the old versions go? And why didn't my table shrink after I deleted most of it?
- Understanding MVCC in PostgreSQL What does transaction B see while transaction A is changing the same row? I finally sat down to find out what happens under a simple UPDATE.
- Deploying during business hours Our system takes payments all day, so every deploy meant downtime. Here's how we got to rolling deploys without Kubernetes, one question at a time.
- Why UFW doesn't block Docker ports I denied a port in UFW, but the container behind it was still reachable from the internet. It took me a while to stop blaming UFW and start reading iptables.
Start a discussion
Every post ends with a discussion thread. If something I wrote is wrong, could be done better, or reminds you of a problem you've dealt with, leave a comment there. Most of what I've learned came from someone pointing out what I missed.