10+ years in backend, the last five on live game systems in Django and .NET Core. Most of the work comes down to keeping data correct when many players write to the same place at once, keeping scheduled jobs firing on time across workers, load testing before release, and moving legacy systems onto a new stack without downtime. Most of that work ran end to end — writing the design, building it, testing it, and watching it in production afterwards.
Owning a feature end to end — design, build, test, monitor
Concurrency-safe data models under write contention
Performance work driven by load models, not guesses
Zero-downtime migration of production services
Selected work
PvP Tournament
Distributed job scheduling
A versus tournament scheduling system built on rrule, with a master job orchestrating slave jobs for reward distribution, leaderboard updates and recurring event scheduling. Jobs run on Celery workers with Redis as broker and RedBeat driving schedules that change at runtime. Timezone-aware recurrence keeps live events firing at the right local hour for a global player base.
Python
Celery
Redis
rrule
Daily Boss
High-contention writes
Atomic DynamoDB updates with conditional expressions absorb concurrent damage submissions, eliminating race-condition data loss. Faction and member leaderboards run on Redis, guarded by distributed Redis locks where two requests can touch the same key. Reward distribution is dispatched as Celery jobs across damage milestones and faction thresholds, and the whole flow is covered by unit tests.
DynamoDB
Redis
Celery
Atomic writes
Unit tests
Tactics Event
Service architecture
Standardized the layered architecture (view/controller/service/manager/model) and the progress-tracking pattern now shared across every event system. Implemented dynamic tier unlocking that auto-seeds new tiers mid-event without full table scans. Fixed a nested-attribute DynamoDB write failure and reused the fix as a pattern elsewhere.
Architecture
Design patterns
DynamoDB
Faction Feud
Migration & load testing
Migrated Faction Feud from Python 2 to .NET Core 6, transitioning all APIs with no downtime. Modeled user behaviour in Locust to load-test new and updated APIs under varied conditions, presented the reports and resolved the bottlenecks found.
C# / .NET 6
Locust
Load testing
Experience
Game Server Engineer
Sep 2021 – Present
Gear Games · Hanoi
Live event systems at scale — see Selected work above.
Web Developer
Jul 2018 – Nov 2021
Gear Games · Hanoi
Built features for the internal LiveOps tool used to control live game data; partnered with Unity and server teams to design data structures for new releases.
Web Developer
Dec 2020 – Jan 2022
Rybot · US clients
Feature work and bug fixes for American clients on Flask, Angular and PostgreSQL, across timezones with US product owners on short iterative release cycles.
Full Stack Developer
Dec 2017 – Jun 2018
Software Outsourcing Vietnam (ICTS) · Hanoi
Worked directly with Japanese clients; shipped bireki.jp (ReactJS, AWS EC2) and the Relotalent mobile app as a PWA.
Web Developer
Mar 2016 – Jan 2018
VTC Game · Hanoi
Started on marketing sites for new game launches, then moved onto VTCPay.vn, a national payment gateway — first exposure to large-scale system operations. Also contributed to We25.vn and Game8.vn.
PHP Web Developer
Sep 2014 – Feb 2016
MQ ICT Solutions · Hanoi
Built and maintained PHP/MySQL web applications on outsourcing projects for Japanese clients — first professional ownership of a production codebase.
Toolbox
Languages & frameworks
Python
Django
Flask
C# / .NET Core 6
PHP
Data
DynamoDB
Redis
MySQL
PostgreSQL
Infra & tooling
Celery
Docker
Docker Compose
AWS EC2/S3
GitHub Actions
Locust
Datadog
Frontend
ReactJS
VueJS
Angular
PWA
Education
Hanoi University of Science and TechnologyGraduated 2015
Engineer’s Degree, Information Technology
Nguyen Tat Thanh High School for the Gifted, Lao CaiClass of 18