/about
About
Phan Van Tai — an engineer in Vietnam, moving from taking tickets to picking problems and building products.
Hi, I'm Phan Van Tai, or just Tai. I'm an engineer in Vietnam. I've written code for years, and I'm now learning something harder than code: picking the problems worth solving.
What I do#
For most of my career I was a pure engineer: take the spec, write the code, ship. Mobile first, then web, a few stack changes along the way, but the role never changed. What I'm changing now isn't the stack, it's the role — standing at the start of the chain: spot the problem, design the solution, shape the system, then write the code.
So instead of locking into one domain, I build what I think is worth building:
- Examino — a white-label platform for English language centers: paper-faithful Cambridge/IELTS mock tests, AI grading, and center operations in one place. Solo founder and engineer. The first center is running in production, and this is where most of my time goes right now.
- QuickSpend — an offline-first iOS app that logs expenses from a spoken sentence. Built for myself first, shipped to the App Store after.
- PES Arena — a Flutter app for PES players to run their own tournaments, even when the LAN party loses wifi. Open source.
Three products, three different stacks. Not because I like switching, but because each problem fits a different tool.
How I work#
- Ship early, iterate: I'd rather put a 60% version in front of real users and fix it from feedback than polish to 100% before release. Examino grew in the order centers asked their questions, not in the order of a roadmap I drew up front.
- Boring tech: Next.js, Postgres, one VPS. Mature tools, good docs, big community. No stack changes every three months to follow the hype.
- Code with AI, guard with machines: most of the code I've written lately is paired with an AI coding tool. Shipping speed far outruns eyeball review, so what keeps the codebase together is boundary lint, test lanes, and a red CI when something's wrong — not personal discipline.
- Self-host when it makes sense: Docker + Coolify on a VPS for Examino, for control and cost. This site runs on Vercel, because it solves exactly that problem and I don't want one more thing to worry about.
- Have opinions, fix mistakes in public: I write to think more clearly. When a post is wrong I correct it, I don't delete it.
Stack I reach for#
- Web: Next.js (App Router), strict TypeScript, Tailwind, Prisma + PostgreSQL, MDX
- Mobile: SwiftUI for native iOS, Flutter when I need both iOS and Android
- AI: OpenAI inside products (grading, parsing a sentence into a transaction), Claude Code to build them — including this site
- Infra: Docker, Coolify, Cloudflare (R2, Pages), Vercel, GitHub Actions, Sentry
Outside of code#
This site is a personal canvas, not a pure tech blog, so alongside tech there are films, books, photos, and games. I read technical books slowly, mapping each chapter onto whatever I'm building. PES is the reason PES Arena exists. And if this site smells like Blade Runner 2049, that's not a coincidence.
Contact#
- Email: taipv.swe@gmail.com
- GitHub: @phanvantai
- LinkedIn: tai-phan-van
I'm usually online during UTC+7 working hours. If you want to talk tech, AI, products, or anything from the blog, drop a line. Online coffee and strange ideas welcome. Spam gets ignored.
About this site#
Next.js 16, MDX, Tailwind v4, deployed on Vercel. Bilingual Vietnamese/English, with Vietnamese as the primary version. The source is on GitHub as source-available, so you can see how Next.js + MDX is wired up — it is not open source. The content is mine, please don't reuse it.