Open to opportunities

Full-Stackdeveloper

Currently

Technical Lead
at VGT Global JSC

I build production web products with Next.js and NestJS — and I stay with them through deployment, debugging, and the parts that only break at 2am on real infrastructure.

01About

What I focus on

I enjoy building end-to-end products that stay clean as they grow. Most of my work now is realtime — WebSocket gateways, peer-to-peer calls, and a mobile app that has to ring a locked phone — plus the multi-tenancy and deployment underneath it.

  1. 01

    Ship it, then own it

    Writing the feature is half the job. The other half is the logging that makes a failure legible and the handover that lets someone else fix it without me.

  2. 02

    One system, not many

    Reusable primitives and consistent conventions beat clever one-offs. New requirements should cost less over time, not more.

  3. 03

    Boring infrastructure

    Well-understood building blocks first — managed AWS services, plain Docker, ordinary Postgres. Interesting architecture is a cost, not a feature.

Education

Hanoi University of Science and Technology

B.Sc. Computer Science (IT1)

2021 — 2025

Certification

TOEIC 780

2025

Based in

Thanh Xuan, Ha Noi

Vietnam

02Experience

Where I've worked

  1. May 2026 — Present

    Technical Lead

    VGT Global JSC

    • Lead engineering on a multi-tenant hotel concierge platform in production — guest tablets, a staff dashboard, live audio calls between them, and an on-premises voice AI.
    • Set the architecture — the multi-tenant data model, the realtime call flow, and the on-premises AI embedded in the guest tablet.
    • Work the whole surface: NestJS API, React admin and guest apps, and a React Native app for staff.
    • Own the deployment path for both environments, from CI runner through to the servers.
  2. Sep 2024 — May 2026

    Full-Stack Developer

    Pionero JSC

    • Joined as an intern and stayed on as a full-stack developer, working across multiple products in Next.js and NestJS.
    • Built real-time UI for speech-to-text features.
    • Developed responsive product pages and internal tools.
    • Supported deployment and operations on AWS.
    • Worked with ECS, ECR, EC2, ALB, RDS, S3, CloudFront, API Gateway, SQS, SNS, and SendGrid.
  3. Jun 2026 — Sep 2026

    Full-Stack Developer

    Freelance

    • Delivered a loyalty and ordering product for a coffee chain as a Zalo Mini App, with a NestJS API and an admin dashboard behind it.
    • Integrated the brand's iPOS point-of-sale: member sync, vouchers, and points-to-voucher redemption.
03Selected work

Three places, three constraints

A platform in production, a product team before that, and a client I answered to directly. Different constraints, same standards.

VGT Global JSC — the realtime calling platform I lead. Closed source, so what follows is the architecture rather than the code.

    • Multi-tenant on one shared PostgreSQL database with row-level isolation per hotel — kept deliberately over a database-per-tenant split, and sized for hundreds of properties at 150-500 rooms each.
    • Guest-to-staff calls are peer-to-peer WebRTC audio with TURN fallback on a self-hosted coturn: media never reaches the app server, which carries signalling only.
    • A React Native staff app sharing a core package with the dashboard — CallKeep puts the call on the native incoming-call screen, and Firebase messaging wakes the app for it.
    • On-premises voice AI routed per hotel to that site's own GPU rather than a cloud provider — speech to speech through a lip-synced 3D avatar.
    • For the guest tablets, a Device Owner agent that holds the device binding, restarts the kiosk when it dies and applies commands from the backend, wrapped around a hardened WebView shell.
    • NestJS
    • Prisma
    • PostgreSQL
    • Socket.IO
    • WebRTC
    • React
    • React Native
    • Kotlin
04Stack

What I build with

Frontend
  • Next.js
  • React
  • React Native
  • TypeScript
  • Tailwind CSS

Motion with GSAP and Framer Motion, including a real reduced-motion layout rather than a switch that turns it off.

Backend
  • NestJS
  • Socket.IO
  • WebRTC
  • Prisma

Firebase Cloud Messaging for push; PostgreSQL row-level security for tenant isolation; Strapi where a CMS is the right answer.

Cloud & DevOps
  • AWS
  • Docker
  • GitHub Actions

In production: ECS, ECR, EC2, ALB, RDS, S3, CloudFront, API Gateway, SQS, SNS.

Data
  • PostgreSQL
  • MySQL
05Contact

Let’s build
something.

Open to full-time roles and freelance web projects. Fastest way to reach me is email.