Le Duy Khanh
Frontend Engineer · Ho Chi Minh CityAvailable for full-time work

Editors, canvases andinterfaces that stay fastwhen the work gets heavy.

Four years at VFA building product frontends with React, Vue, Next and Nuxt — most of it spent on the hard parts: canvas editors, complex state, and interaction that has to feel instant.

Le Duy Khanh
Le Duy Khanh · HCMC
ReactNext.jsVueNuxtTypeScriptKonva.jsCanvas 2DNode.jsNestJSPythonGraphQLTailwindReduxApollo
01
About

I like the part of the job where something ambiguous turns into a working interface.

I studied software engineering at Hutech and went straight into frontend work at VFA in 2022. The canvas projects are where the job gets most literal — a blank surface, a set of constraints, and a lot of small decisions before it feels right.

Away from the editor I play video games, watch films, and spend time with my family. Lately I have been working through AWS services, mostly out of curiosity about what happens on the other side of the API I have been calling for four years.

NowAug 2026
Building product frontends at VFA
Learning AWS services
Open to full-time frontend roles
Rebuilt this portfolio from scratch
02
Work

Selected work

Three products, three different kinds of difficulty. What follows is what I actually built and what made it hard.

01

AnymateMe

Presentation-to-video editor

A Canva-style editor that ingests PowerPoint files, turns them into an editable canvas, and exports video narrated by an AI avatar reading the script the user wrote.

RoleFrontend — canvas editor, plus parsing pipeline
StackReact · Konva.js · TypeScript
Python · Java
scene · snap 8
rect_a · x 48 · y 96
rect_a
text_b
img_c

Live demo — drag the objects. Grid snapping, edge clamping, coordinate readout.

The hard part

PPTX is deeply nested XML that does not map cleanly onto a canvas scene graph. I worked on the parsing side in Python and Java and built the Konva layer that had to reproduce slide geometry, z-order and text boxes faithfully — while staying responsive with hundreds of objects on screen.

02

Vietop

Online English learning platform

A learning platform for students and teachers. I owned most of the frontend: course surfaces, lesson flows and the shared component layer.

The hard part

Rendering and routing had to hold up across a wide catalogue of content types. Working across both Next.js and NestJS meant the contract between them was mine to keep coherent.

RoleFrontend
StackNext.js · NestJS
TypeScript
Screenshot placeholder — Vietop lesson screen
03

ConnectJP

Partner engagement — five product surfaces

Five smaller products delivered for a Japanese partner, all built on Vue with NestJS behind them, each with its own domain and its own deadline.

The hard part

Different products, short cycles, one set of conventions holding them together. The value was a shared way of structuring components so each new surface could start from something already proven rather than a blank file.

RoleFrontend & Backend
StackVue.js · NestJS
Surfaces
StopAccount01
Robo Advisor02
ChangeBank03
K_ID04
IDModel05
03
Expertise

What I actually do

Grouped by how much of my working time it takes, not by how many logos I can list.

Frontend Engineering

React · Next.js · Vue · Nuxt
TypeScript · JavaScript · Modern CSS
Core — daily

Interactive & Canvas

Konva.js · Canvas 2D
Animation · interaction state
Specialism

Backend

Node.js · NestJS · GraphQL
Working knowledge

Automation & Tooling

Python · Git
Working knowledge

AI-assisted Engineering

OpenAI Codex · Claude Code
Part of the workflow
Also: Tailwind · Redux · Apollo · HTML · CSS · AWS (learning)
04
Experience

Where I have been

2022 — Present

Frontend Developer

VFA · Ho Chi Minh City

Joined VFA as a frontend developer straight out of university and stayed. Started on interfaces, then grew into backend and full-stack work as the products needed it.

2018 — 2022

B.Eng, Software Engineering

Hutech University · Ho Chi Minh City

Four years studying software engineering. Found frontend work immediately after graduating.

05
Approach

How I work

01

Design and build are one pass

I do not wait for a perfect spec. Layout, states and motion get decided in the browser, where they are actually true.

02

Performance is part of the design

On canvas work especially: measure first, then fix the thing that is actually costing frames — not the thing that looks expensive.

03

Code the next person can read

Component boundaries that match how the product is talked about, not how the file tree happened to grow.

04

AI-assisted, not AI-decided

I use Codex and Claude Code to move faster through prototyping, implementation and debugging. Everything they produce gets read and reviewed like any other code.

06
Contact

Looking for a full-time frontend role.

If you are hiring, or you just want to talk about canvas rendering, my inbox is open.

leduykhanh.ldk210900@gmail.com