Skip to content

Writing code since 2023 · client work since 02/2025 · 26 shipments · 10 systems live

I build what your business needs: web systems, automations and AI agents.

Tell me the job and I pick the tools for it. Every shipment on the board links to its proof: a live system, the tests, or before-and-after numbers.

Worked on

PratekUniben FoodsVietcoseVSVan Data TeamOntevo

and 9 private clients in Vietnam, the US, Europe and Singapore, names withheld

Partners

Tran Tien Van (Van Data Team) and Tim N. (Repurgo), both Upwork Top Rated Plus with 100% Job Success (their profiles, read 21 Oct 2026)

What shipped, and how it was checked

Four records and a test count, each with a different kind of proof: a load test, a speed report, production data and a public demo.
NLV-26-PRF

Delivered

Two slow intros removed, and what they were hiding fixed

Van Data Team

Both builds on one machine, median of 3 runs

Top of the page visible on desktop: 4,493 ms → 526 ms. JavaScript loaded in the first 6 seconds: 2,425 KB → 695 KB

Read the record →

1,338

test cases in 8 repositories where I wrote most of the commits

Counted on 21 Oct 2026

  • NLV-26-KOL473
  • NLV-26-CRM199
  • NLV-26-HRM153
  • NLV-26-RIB147
  • NLV-26-XCL110
  • NLV-26-OUT108
  • NLV-26-LCL93
  • NLV-26-REV55
How they are counted →

The 66-second version

Built in code from the same data as this page, with an AI coding assistant. Every figure in it has a record. Turn the sound on for the narration.
Made from the claims ledger and real screens, no stock footage. AI voice; music and sounds made in code; script and figures mine.

What I build

Built to your brief, on the tools that fit it. A single project, a contract, or a seat on your team.
  1. FIG 03 · THE ROW THAT CHANGED

    01

    Web systems

    Order, invoice, HR and internal tools, or features in a product you already run. Anything that should get faster is measured before and after.

    You get

    • Working software with tests
    • Before-and-after numbers for speed work
    • Notes your team can keep
    Systems and products →
  2. FIG 04 · SORT, STORE, TELL A PERSON

    02

    Automations

    Leads, replies and reports moving between your tools without sending twice or losing one. Rules decide first; a model is asked only when the rules are unsure.

    You get

    • The workflows and the code around them
    • Tests on real payloads
    • A shadow run before the switch
    Automations →
  3. FIG 05 · ROLES, A CHECK, A PERSON

    03

    AI agents

    Agents that research, draft, check and act inside your tools. Each one has a narrow role, a check it must pass, and a person approving whatever leaves the building.

    You get

    • Agents with limits on cost, retries and time
    • A log of every run
    • Approval steps where you want them
    Agent pipeline record →
  4. FIG 06 · FRAMES, CAPTIONS, WAVEFORM

    04

    Explainer video

    Explainers and short videos with scenes written in code, captions timed to each word, and checks on every render. Vietnamese or English.

    You get

    • MP4 in the formats you post
    • Caption files and an editable project
    • A QA sheet for every render
    Studio →

Watch a run fail and recover

Two real systems, anonymized where needed. Each plays once when it comes into view; step through it yourself.
Step 1 of 8

Replies from LinkedIn and email outreach and Calendly bookings arrive as webhooks, sometimes more than once.

  1. Normal run01DoneReplies from LinkedIn and email outreach and Calendly bookings arrive as webhooks, sometimes more than once.
  2. 02DoneEach event gets a key. An atomic claim on a Data Table lets only the first copy through: 20 concurrent requests write 1 row.
  3. 03DoneRetries and duplicates stop here instead of reaching Slack twice.
  4. 04DoneReplies are classified into six labels, in English and Finnish. Rules decide first.
  5. 05DoneThe CRM is written first, so nothing that reached Slack is missing from the CRM.
  6. 06DoneOnly replies that need action go to Slack and a person. Declines are stored in the CRM and stop there.
  7. Something breaks07FailedOne workflow reported success while Slack received nothing. Its filter required a campaign field that real reply events do not carry.
  8. Recovery08DoneI fixed the condition and replayed exactly the 3 events that were lost. The tests now run on real payloads, not sample ones.
Step 1 of 7

A research agent collects primary sources and writes a claim registry: every usable fact with its source and date.

  1. Normal run01DoneA research agent collects primary sources and writes a claim registry: every usable fact with its source and date.
  2. 02DoneThe hook and the script are drafted by their own agents. Each sentence carries the ID of the claim it states, and a person approves both.
  3. 03DoneA scene agent gives each sentence one visual; voice and visuals are produced with their rights recorded. No synthetic evidence.
  4. 04DoneWord timings come from forced alignment against the script, not from estimates.
  5. 05DoneScenes render in code, and a person signs off before anything is published.
  6. Something breaks06FailedIf a spoken word cannot be matched to the script, the gate fails closed and the stage is sent back instead of guessing.
  7. Recovery07DoneThe stage is revised and checked again. Limits on revisions, budget and time stop a run that would otherwise loop.

How work starts

  1. 1

    A 20-minute call

    We go through what runs today, what should change, and how you will know it worked.

  2. 2

    Scope in writing

    One page: what changes, what stays, the checks that define done, and the first slice.

  3. 3

    Small slices

    Work lands in pieces you can review, each with its tests or before-and-after numbers.

  4. 4

    Handover

    Code, tests, a runbook and the editable files, so your team can run it without me.

Explainer videos, checked frame by frame and handed over editable

Pin Yếu, a character drawn in code, walks across the section.

A recent delivery

For a network of education and storytelling channels: a new 4:30 narration with the existing scenes re-timed to it, 178 subtitle lines with 27 keywords highlighted, and a CapCut project split into 16 scenes with separate voice and music tracks. The client then learned to run the same pipeline in a call.

The client is not named and the video is not published.

Open the Studio →
Pin Yếu demo: a silhouetted character walks a dark corridor with a flashlight while a phone battery meter drains in the corner.Watch the teaser0:55
Pin Yếu, my own horror teaser: 55 seconds, every frame drawn in code.

Tell me what you need built

A few lines are enough: what runs today, what should change, and by when. For a role, paste the job link.
What do you need?
When do you need it?

Your message goes to my inbox and my lead sheet. No newsletter, no third-party tracking.