Skip to content
TT

Open to senior & staff roles

I build the systems that break expensively.

I'm Thang — a backend and platform engineer with 9+ years on the paths where a bug is a refund queue, a duplicate payout or an oversell. Exactly-once accounting on an at-least-once pipeline. A multi-tenant commerce app installed across three platforms from one core. A 300,000-product headless storefront cut over on a store that never stopped taking orders.

Vietnam · GMT+7English · VietnameseRemote-first
About

Nine years on systems that have to stay correct.

I'm a backend and platform engineer who spent nine years on the systems where mistakes cost money — payment paths, event pipelines that pay partners, and inventory that has to agree with a warehouse in real time.

Most of my work sits on the seams between systems. An affiliate pipeline where delivery is at-least-once and the accounting has to be exactly-once. A shipping-protection product installed by merchants across three commerce platforms, from one multi-tenant core with per-platform adapters. A 300,000-product catalogue where the interesting problem was never the number — it was that cursor pagination, cache invalidation and a live cutover all had to hold at once, on a store that was taking orders the entire time.

The pattern I keep coming back to: the hard part is rarely the feature, it's the failure mode you inherit. Webhooks retry. Regions drift. The catalogue outgrows the query. I design for the second delivery before I ship the first.

EnglishVietnameseVietnamGMT+7Open to senior & staff roles

Checkout is sacred

I hand checkout back to Shopify rather than rebuilding it. A custom checkout costs more in PCI scope, payment methods and lost Shop Pay conversion than it will ever earn back.

Measure before optimising

On a store doing 20–30 orders a minute, the obvious fix was caching the catalogue. The actual bottleneck was the order-write path. Profiling first is not process — it is the difference between fixing it and not.

Assume every event arrives twice

Webhooks retry, pipelines redeliver, users double-click. Idempotency is not a nice-to-have on money paths — it is the design.

Ship the trade-off, not the ideology

Headless is a trade: rendering control for routing, caching and preview complexity. I go headless when the catalogue or the experience demands it, and stay on a theme when it does not.

Write it down before it's urgent

The decision that survives is the one someone else can read six months later. I write the short version — what we chose, what we rejected, what would change our mind — because an architecture nobody can explain gets rebuilt by the next person who touches it.

Open to

Senior Backend EngineerPlatform EngineerSenior Full Stack EngineerStaff Engineer
Experience

The path from full stack generalist to commerce specialist.

Feb 2021 – Present

Remote · US & UK storefronts

Simon & Schuster

Senior Shopify / Full Stack Engineer

Headless Shopify storefronts for a 300,000+ product publishing catalogue across two regions.

  • Built the storefront on the Shopify Storefront API with Next.js, replacing theme-bound rendering.
  • Ran catalogue and inventory operations through the Admin API at 300k-product scale.
  • Kept Shopify checkout via the Buy Button SDK and made hand-off failures diagnosable.
  • Instrumented the funnel with GA4, GTM and a Shopify Custom Pixel.
  • Covered revenue-critical paths with Cypress E2E in CI.
ShopifyStorefront APIAdmin APINext.jsCypressGA4
Read the case study

Feb 2021 – Present

Remote

Cost Price Supplements

Senior Full Stack Engineer

Performance, reliability and integration work on a store peaking at 20–30 orders per minute.

  • Profiled and relieved the order-write contention that limited peak throughput.
  • Introduced Redis caching and session handling on the hottest paths.
  • Built continuous, idempotent warehouse stock reconciliation.
  • Shipped Luigi's Box AI search and event-driven marketing automation.
WooCommercePHPRedisMySQLCypress
Read the case study

Feb 2021 – Present

Remote

Order Protection

Senior Full Stack Engineer

Shipping-protection app with subscription billing, shipped natively to Shopify, Magento and BigCommerce.

  • Designed a platform-agnostic core with thin per-platform adapters.
  • Built the Shopify app properly: OAuth, session tokens, webhooks, embedded surfaces.
  • Made webhook processing idempotent to eliminate duplicate-charge bugs.
  • Handled subscription billing and per-order premium reconciliation.
Shopify AppNode.jsReactPostgreSQLPayments
Read the case study

Feb 2021 – Present

Remote

Affitor

Senior Full Stack Engineer

Affiliate platform with cross-domain attribution and an idempotent event-processing pipeline.

  • Rebuilt attribution to work without third-party cookies.
  • Achieved exactly-once accounting on an at-least-once event pipeline.
  • Deployed containerised services to AWS ECS with Redis-backed hot lookups.
Node.jsNext.jsAWS ECSRedisDocker
Read the case study

Feb 2021 – Present

Remote

ShowdownTV

Full Stack Engineer

Live streaming platform on AWS MediaLive and CloudFront with Redis-backed live state.

  • Delivered adaptive-bitrate live video through MediaLive and CloudFront.
  • Absorbed start-of-stream traffic spikes through CDN and cached state.
Next.jsNode.jsAWS MediaLiveCloudFrontRedis
Read the case study

Jan 2017 – Feb 2021

Vietnam

Earlier engagements

Full Stack Engineer

Commerce and web application work across the JavaScript and PHP ecosystems — the foundation the Shopify specialisation was built on.

  • Shipped production commerce features across multiple platforms and teams.
  • Moved from general full stack work into deep commerce-platform specialisation.
JavaScriptReactNode.jsPHPMySQL
Commerce specialisation

Most of those systems were commerce systems.

Nine years of it, deepest on Shopify — headless storefronts, the Storefront and Admin APIs, and checkout boundaries you do not own.

The full Shopify breakdown

Headless Shopify

Shopify keeps the commerce. You get full control of rendering, routing and caching.

A storefront whose performance ceiling is set by your architecture rather than by theme limits.

Storefront API

The customer-facing read path — products, collections, cart.

Fast catalogue and cart surfaces that stay fast as the catalogue grows.

Buy Button SDK & checkout

Hand checkout back to Shopify. Deliberately.

Shopify's conversion-optimised checkout, with hand-off failures that are diagnosable rather than mysterious.

Technical skills

The stack, grouped by what I'd be trusted to own.

Highlighted items are where I have the most production depth — the rest I use comfortably.

Backend & APIs

The services behind the product — integrations, event processing, and the paths that move money.

  • Node.js (deep production experience)
  • TypeScript (deep production experience)
  • REST & GraphQL (deep production experience)
  • API design (deep production experience)
  • Webhooks & idempotency (deep production experience)
  • Event-driven architecture (deep production experience)
  • Rate limiting & backpressure
  • OAuth 2.0
  • Payments & subscription billing
  • Multi-tenancy
  • NestJS
  • PHP

Data & Infrastructure

Enough platform depth to own a deploy, a queue and a database — not just consume them.

  • PostgreSQL (deep production experience)
  • Redis (deep production experience)
  • Docker (deep production experience)
  • AWS (ECS, CloudFront, MediaLive) (deep production experience)
  • Query profiling (deep production experience)
  • Caching strategy (deep production experience)
  • MySQL
  • CI/CD
  • Data modelling & migrations

Architecture & Practice

How the decisions get made, written down, and survive the next person who touches them.

  • Distributed systems (deep production experience)
  • System design (deep production experience)
  • Fault tolerance & retries (deep production experience)
  • Technical documentation & ADRs (deep production experience)
  • Code review & mentoring
  • Incident debugging

Commerce Platforms

The specialisation most of those systems were built inside. Shopify deeply, plus the platforms merchants migrate from.

  • Shopify (deep production experience)
  • Headless Shopify (deep production experience)
  • Shopify Plus (deep production experience)
  • Storefront API (deep production experience)
  • Admin API (deep production experience)
  • Buy Button SDK (deep production experience)
  • Shopify Custom Pixel (deep production experience)
  • Liquid
  • Shopify Functions
  • WooCommerce
  • BigCommerce
  • Magento

Frontend

Interfaces that render fast on real devices and real networks, not just on a laptop.

  • React (deep production experience)
  • Next.js (deep production experience)
  • App Router (deep production experience)
  • Core Web Vitals (deep production experience)
  • TailwindCSS
  • Accessibility

Quality & Measurement

The tests that exist because something expensive broke once — and the data that says whether it worked.

  • Cypress (deep production experience)
  • E2E testing (deep production experience)
  • Performance profiling (deep production experience)
  • Monitoring
  • GA4
  • Google Tag Manager
  • Conversion optimisation (CRO)
  • A/B testing
Achievements

The things behind the numbers.

Shipped headless commerce at publishing scale

Took a 300,000-product catalogue headless across two regions without a big-bang cutover, on a store that was transacting the entire time.

Made a headless checkout debuggable

Built the pixel and network-level evidence trail that separates your bugs from Shopify's behaviour — the single hardest part of running headless in production.

Held stock accuracy at 20–30 orders per minute

Continuous, idempotent warehouse reconciliation on a WooCommerce store selling faster than its sync was designed for.

Exactly-once accounting on an at-least-once pipeline

Idempotent event processing for affiliate attribution, where a duplicated event is a real overpayment to a partner.

One product, three commerce platforms

A platform-agnostic core with thin adapters, so Shopify, Magento and BigCommerce ship the same feature once.

Cross-domain attribution after third-party cookies

Rebuilt affiliate attribution on first-party mechanisms when the industry default stopped working.

Contact

Let's talk about
your storefront.

I reply to every message that isn't a template. If you're hiring for a senior Shopify or full stack role — or you have a headless build that's gone sideways — tell me what you're working on.

Based in Vietnam (GMT+7) · Working remotely with US, UK and EU teams

Goes straight to my phone. I reply to every real message.