Your browser can't run WebGL, so the 3D city is off. Scroll down to see every project.

HUYNH TRONG NGHIA

Backend Engineer · Go / PHP — distributed & real-time systems

Events processed 0 / 12
WASD walk · Shift run · click the ground to go · E open project Tap the ground to walk there · tap the card to open a project
Zone

Project

Profile

Backend systems that stay up under load

3.5+ years building distributed, real-time backends in Go and PHP — from workflow engines and WebSocket clusters to logistics and booking APIs.

I run Temporal, Kafka, NATS and ClickHouse in production, ship with Docker and CI/CD, watch services with Grafana and Graylog, and use AI agents to deliver faster. Open to Backend / Platform Engineer roles.

WebSocket10K+concurrent connections
Logistics−15–20%client operating cost

Stack

Languages
Go (Gin) · PHP (Laravel) · Python · TypeScript (NestJS)
Messaging
Temporal · gRPC/Protobuf · Kafka · NATS · Redis Pub/Sub · WebSocket
Data
PostgreSQL · MySQL · ClickHouse · Redis
DevOps
Docker · GitHub Actions · GitLab CI · Linux VPS · Cloudflare · Grafana · Graylog
Testing
Go testing · Testify · integration tests · PHPUnit

AI in my workflow

LLM features built on the OpenAI, Claude and Gemini APIs. Day to day I work with Claude Code and Cursor agents, with custom skills and rules, for faster delivery and code review.

LLM integrationPrompt engineeringAI agentsClaude CodeCursor
Logistics clients15+enterprises on one platform
Workflows0lost rewards — Temporal retries every failed step
Booking0double-bookings at peak, thanks to Redis locks

Let's talk

Ho Chi Minh City, Vietnam · open to remote

htnghia2702@gmail.com LinkedIn ↗ GitHub ↗
Prototypes

Four systems, four playable prototypes

Production work under NDA. Each prototype simulates the architecture and the failure it was built to survive.

Animated diagram of the Gaming CRM workflow

Gaming CRM · Real-time Workflow Platform

Temporal workflows that survive failures, plus a WebSocket cluster pushing live events to players.

GoTemporalKafka
Animated map of the logistics platform

Logistics · TMS / WMS / Last-mile

Order intake, routing, dispatch and proof of delivery for 15+ enterprises, with live GPS.

GoPHPWebSocket
Animated diagram of two users racing for one seat

Ticketing & Booking Platform

Redis locks, caching and queues keep seat sales correct during peak-season rushes.

GoRedisQueue
Animated seafood production line

Seafood Manufacturing ERP

Batch traceability from intake to export, with QC failures routed back to rework.

LaravelMySQLDocker
crm.internal / flows / vip-deposit-reward
Gaming CRM

Real-time Workflow Platform

Business teams build flows visually, Temporal runs them reliably, and players get updates in real time.

GoTemporalNATSKafkaWebSocketClickHouse
  • Stateful workflow engine on Temporal with automatic retries
  • Node-based flow builder: logic configured at runtime
  • Go WebSocket cluster, tens of thousands of connections
  • NATS + Kafka pipelines; analytics in ClickHouse
Try it: turn on Inject failure and run the workflow. Temporal retries the failed step, so the player's reward is never lost.
workflow: vip-deposit-reward
retryTriggerplayer.deposit
retryConditionVIP tier ≥ 3
retry 1/3Rewardgrant bonus
retryNotifypush · WS
retryCompletepersist state
12,000live WebSocket connections ≈ 3 gateway nodes
dispatch.tms / live-map
Logistics

TMS / WMS / Last-mile Delivery

Backend for driver, shipper and admin apps used by 15+ enterprises.

GoPHPRESTWebSocketGPS
  • Automated order intake → routing → dispatch
  • Real-time GPS sync; dynamic routing cut costs 15–20%
  • Barcode/QR scanning and proof-of-delivery uploads
  • 1,000+ daily users on mobile and web
Try it: click the map to create a delivery order. Watch it get routed, dispatched and delivered.
dispatch console · live
WH
Click the map to place an order
No orders yet.
0orders created
0in transit
0delivered (POD)
booking-service / concert-a / seats
Ticketing

Booking without double-booking

Stays correct when thousands of people grab the same seats at peak season.

GoRedis lockCacheQueue
  • Redis distributed lock per seat: one holder at a time
  • Cache absorbs read spikes on seat maps
  • Queue smooths write bursts during sales
Try it: turn Redis lock off and hit Peak traffic to see double-bookings. Turn it back on and they stop.
booking-service
STAGE
free user A user B other buyers you double-booked
0bookings
0rejected safely
0double-booked
erp.plant-1 / production-line
Manufacturing

Seafood Manufacturing ERP

Every batch is tracked from intake to export, replacing manual paperwork.

PHPLaravelMySQLDocker
  • Intake, processing, QC, packing, cold storage, shipping
  • Batch traceability across every stage
  • QC failures routed back to rework automatically
Try it: receive batches and watch them move through the line. About 15% fail QC and go back for rework.
production-line · plant 1
0 kgreceived
0 kgin cold storage
0 kgshipped