About

I build AI products that ship — voice bots and agentic systems in production.

Tâm — Product Builder @ BIVA, based in Hanoi, Vietnam. Voice bots that handle real customer calls for Vietnamese transport companies, and agentic booking systems that process transactions end to end. I care less about which model is underneath than about whether the product works for the person on the other end of the call.

I started in competitive programming — ACM/ICPC at PTIT — and moved into agentic application development. Along the way, evaluation became the interesting part: structured audit frameworks that lint, simulate, refine and capture lessons, and prompts treated as product surfaces that are versioned, tested and observable.

2+ years
building AI products, currently at BIVA
User problem firstProduct

A bot that resolves 80% of calls beats a clever architecture that resolves 60%. The tech choice comes after the problem is clear.

Ship, measure, iterateLoop

Iteration driven by real call transcripts, and metrics that are observable in those transcripts rather than in a dashboard nobody opens.

Evaluation as a disciplineRigour

Lint, simulate, refine, capture lessons. Prompts are product surfaces: versioned, tested, observable — not strings someone edited in a hurry.

Focus

Start from the user problem, not the tech: a bot that resolves 80% of calls beats a clever architecture that resolves 60%. Ship, measure, iterate — transcript-observable metrics over dashboards nobody reads. And translate in both directions: unit economics with stakeholders, token economics with engineers.

Stack

This site is the other half of the work. TypeScript and React 19 on TanStack Start, bundled by Vite and prerendered to Cloudflare Pages. Hono on Cloudflare Workers with D1 for the dynamic endpoints. Rust compiled to WebAssembly for the data-crunching bits. Turborepo, pnpm, Biome and Vitest hold it together.

Top skills
Agents
Multi-agent Systems
Agent booking
Voice AI
Callbots
Conversation design
Prompt architecture
Product
Evaluation frameworks
AI product management
This site
TypeScript
React 19
TanStack Start
Rust
Cloudflare
Selected work

What I've shipped

Voice AI in production, an agentic booking product, and the evaluation practice that keeps both honest.

Voice AI in production

intercity bus operators

Designed and deployed callbots for Vietnamese transport companies — booking, routing, and Vietnamese-language customer service. I owned the full loop: conversation design, prompt architecture, evaluation frameworks, and iteration from real call transcripts.

Callbots
Conversation design
Prompt architecture
Vietnamese

BIVA

voice-based booking

A voice booking product with a verify-gated completion architecture: fail-closed admission control, so the bot never confirms what it cannot guarantee. Transactions are processed end to end.

Agent booking
Fail-closed design
Admission control

Evaluation as a product discipline

lint → simulate → refine

Structured audit frameworks that lint, simulate, refine, and capture lessons. Prompts are treated as product surfaces: versioned, tested, and observable — so a regression is something you can see, not something a customer reports.

Evaluation frameworks
Prompt versioning
Observability

This monorepo

4 apps · 9 crates

The site you are reading: three prerendered TanStack Start apps on Cloudflare Pages, one Hono API Worker on D1, eight shared packages, and nine Rust crates compiled to WebAssembly.

TanStack Start
Cloudflare
Hono
Rust / WASM
Track record

Where the time went

Sep 2025 — PresentProduct BuilderBIVAHanoi
Jul 2025 — Oct 2025 · 4 mosAI Software EngineerMinh Phuc Transformation JSC (MPT)Vietnam
Dec 2023 — Jul 2025 · 1 yr 8 mosAI Software DeveloperIcetea LabsHanoi, Vietnam
Dec 2021 — Aug 2024 · 2 yrs 9 mosMemberProgramming PTIT Club
Education

Posts and Telecommunications Institute of Technology (PTIT)

Information Technology · 2021 — 2025

Competitive programming
ACM/ICPC PTIT 2023
3rd Prize
ACM/ICPC PTIT 2022
3rd Prize
ACM/ICPC PTIT 2022
Top 10

Workspace composition

share of 21 members

How this monorepo splits between deployable apps, shared TypeScript packages, and Rust crates.

Crates43%
Packages38%
Apps19%

Deploy targets

share of 4 surfaces

Everything ships to Cloudflare: three prerendered Pages projects and one Worker for the dynamic endpoints.

Cloudflare Pages75%
Cloudflare Workers25%