████████╗ ██████╗ ██╗██████╗ █████╗ ███╗ ██╗ ██████╗ █████╗ ██████╗
╚══██╔══╝██╔═══██╗██║██╔══██╗██╔══██╗████╗ ██║██╔════╝ ██╔══██╗╚════██╗
██║ ██║ ██║██║██║ ██║███████║██╔██╗ ██║██║ ███╗╚██████║ █████╔╝
██║ ██║ ██║██║██║ ██║██╔══██║██║╚██╗██║██║ ██║ ╚═══██║██╔═══╝
██║ ╚██████╔╝██║██████╔╝██║ ██║██║ ╚████║╚██████╔╝ █████╔╝███████╗
╚═╝ ╚═════╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚════╝ ╚══════╝
Bá Tới — Senior Fullstack Engineer, backend-leaning. Rails core, Go & Next.js on the side.
Shipping production web apps since 2014 · Hồ Chí Minh City, Vietnam (UTC+7)
$ ask-my-cv "which team did you lead?"
▸ retrieving ██████████████████░░░░░░ toidang.xyz/r/cv
▸ I led a team of …▉I built a RAG chat over my own CV, so you can skip the intro call. Ask "how do you tune Postgres?", "what did you ship last?", "open to remote?" — and get the rest of that answer.
75 public gists — a decade of things I had to figure out the hard way, kept so nobody has to twice:
- JWT auth + refresh tokens in Rails
- OpenResty (nginx + lua): redis connection pooling
- Measuring Ruby GC · Unaccent in PostgreSQL
- Let's Encrypt for Nginx (IPv6 + HTTP/2)
- SSH into Proxmox containers
Everything else — experience, stack, projects, contact — lives on the CV.



