feat(cv): update for Thoughtworks Software Engineer application

Tailored CV headline to emphasize AI-Assisted Delivery, updated experience
summary to highlight fresher→senior progression and stakeholder collaboration,
made Claude Code plugin/skill marketplace more explicit, replaced miti99
project with miti99bot (AWS Lambda + CI signal), and reordered sections
(Experience→Projects→Skills→Education) to fit 1-page layout.
This commit is contained in:
2026-06-11 21:15:17 +07:00
parent e2c90aaa17
commit f092f49b7f
5 changed files with 1133 additions and 3052 deletions
+30 -34
View File
@@ -9,32 +9,22 @@
- Telegram: [tiennm5](https://t.me/tiennm5)
# Education
## **Ho Chi Minh City University of Technology**, B.E. in Computer Science and Engineering -- HCMC, Vietnam
Sept 2017 June 2023
- GPA: 8.0/10 — Academic Excellence Scholarship; Five Good Student Award
- Thesis: Survival2D — 2D multiplayer Battle Royale game server in Java (Netty/WebSocket); authoritative architecture, FlatBuffers serialization (76% packet reduction vs JSON), behavior tree AI bots, and server-side anti-cheat
# Experience
## **Senior Software Engineer**, ZingPlay Game Studios, VNG Corp. -- HCMC, Vietnam
July 2020 present
Progressed from Game Programming Fresher to Senior Software Engineer. Focuses on Java game backends, live operations, delivery automation, and collaboration with client, QA, release, and product stakeholders.
Progressed from Game Programming Fresher to Senior Software Engineer over 5+ years building and operating production backends for real-time multiplayer games, collaborating daily with client, QA, release, and product stakeholders.
- [Chaos Age 2](https://play.google.com/store/apps/details?id=vn.zps.tl2): Primary Java server contributor across gameplay, battle sync, matchmaking, payment/webpay, admin tooling, tests, and delivery automation
- [Chaos Age 2](https://play.google.com/store/apps/details?id=vn.zps.tl2): Built and operated gameplay systems, battle synchronization, matchmaking, payments/webpay, admin tooling, automated tests, and delivery pipelines as primary Java backend contributor
- Built and maintained Java 21 backend modules with Netty/Vert.x, Couchbase, Redis, Kafka, Gradle, JUnit 5, Mockito, Docker-based local dependencies, and GitLab CI pipelines; used tests around gameplay, payment, and release-critical flows
- Built and maintained Java 21 backend modules with Netty/Vert.x, Couchbase, Redis, Kafka, Gradle, JUnit 5, Mockito, Docker-based local dependencies, and GitLab CI pipelines; used automated tests around gameplay, payment, and release-critical flows
- [Burkozel](https://play.google.com/store/apps/details?id=zps.games.burkozel) and [Show](https://play.google.com/store/apps/details?id=zps.games.show): Implemented and maintained backend gameplay events, payment/config updates, tests, metrics, concurrency fixes, live diagnostics, and release support
- Applied OOP and design patterns to reusable packet handlers, gameplay workflows, payment/config modules, and admin tooling for live products
- [Sky Garden](https://play.google.com/store/apps/details?id=vn.kvtm.js) / KVTM: Maintained Java server features, web payment fixes, Redis/runtime diagnostics, GM tooling, CI/deploy support, and Godot migration support
- [Burkozel](https://play.google.com/store/apps/details?id=zps.games.burkozel), [Show](https://play.google.com/store/apps/details?id=zps.games.show), and [Sky Garden](https://play.google.com/store/apps/details?id=vn.kvtm.js): Diagnosed and fixed live concurrency issues; maintained backend gameplay events, payment/config updates, metrics, and release support
- Built internal Claude Code plugin/skill marketplace and Java game-server scaffolding guidance to standardize packet-handler generation, framework usage, and AI-assisted delivery workflows
- Built an internal Claude Code plugin/skill marketplace and Java game-server scaffolding guidance, standardizing packet-handler generation, framework usage, and AI-assisted delivery workflows
@@ -43,7 +33,9 @@ Progressed from Game Programming Fresher to Senior Software Engineer. Focuses on
Nov 2025 present
Telegram bot for tracking Apple App Store and Google Play metadata changes; originally built in Java, then ported to JavaScript.
Telegram bot for tracking Apple App Store and Google Play app updates; original Java 21 implementation later ported to Node.js/Vercel.
- Built Java bot with Gradle, MongoDB, command-pattern Telegram handlers, reusable repository abstractions, Docker Compose, and JUnit scraper tests; ported to serverless Node.js with Upstash Redis, Vercel Cron, and GitHub Actions checks
@@ -51,37 +43,41 @@ Telegram bot for tracking Apple App Store and Google Play metadata changes; orig
2026
Multiplayer Gomoku game with Go WebSocket backend, protobuf messaging, Docker support, PVP/PVE/spectator modes, and Phaser client.
Multiplayer Gomoku game with authoritative Go WebSocket backend, protobuf binary messages, Docker Compose, GitHub Actions CI, and Phaser client.
- Designed server-authoritative gameplay (move validation, win detection, PVP/PVE/spectator modes, minimax AI with alpha-beta pruning) with Go tests over game, lobby, and codec flows; CI runs vet, tests, and builds
## **[Rplace](https://github.com/tiennm99/rplace)**
## **[miti99bot](https://github.com/tiennm99/miti99bot)**
2026
May 2026 present
Collaborative pixel-art canvas using Svelte, Hono, Cloudflare Workers, and Durable Object SQLite.
Modular Go Telegram bot framework on AWS Lambda (SAM) with pluggable KV storage providers (Firestore/DynamoDB) and AI integration with rate limiting.
## **[DB Keepalive](https://github.com/tiennm99/db-keepalive)**
2026
Pluggable Go daemon for keeping free-tier database clusters active across Redis, Valkey, PostgreSQL, MySQL, MongoDB, and Couchbase.
- Covered modules, storage providers, and AI rate limiting with 53 Go test files; GitHub Actions CI plus OIDC-authenticated AWS deploy pipeline
# Skills
**Languages:** Java, Go, JavaScript/TypeScript, Shell
**Frameworks & Libraries:** Netty, Vert.x, Spring Boot, JUnit 5, Mockito, Cocos2d-x, Godot
**Frameworks & Libraries:** Netty, Vert.x, Spring Boot, JUnit 5, Mockito, Cocos2d-x, Godot, WebSocket
**Databases:** Couchbase, Redis, MySQL, Kafka, ClickHouse
**Data & Messaging:** Couchbase, Redis, MySQL, Kafka, ClickHouse
**Infrastructure & DevOps:** Docker, GitLab CI, GitHub Actions, Linux, AWS Lambda/SAM, Cloudflare Workers
**Infrastructure & DevOps:** Docker, GitLab CI, GitHub Actions, Linux, AWS Lambda/SAM, Cloudflare Workers, Vercel
**Architecture:** Object-oriented design, game server architecture, real-time multiplayer systems, event-driven design, clean reusable code
**Architecture:** OOP and design patterns, reusable components, real-time multiplayer game-server architecture, event-driven design
**Delivery Practices:** Unit testing, code review, production debugging, continuous integration and delivery (CI/CD), DevOps collaboration, AI-assisted development workflows
# Education
## **Ho Chi Minh City University of Technology**, B.E. in Computer Science and Engineering -- HCMC, Vietnam
Sept 2017 June 2023
- GPA: 8.0/10 — Academic Excellence Scholarship; Five Good Student Award
- Thesis: Survival2D — multiplayer Battle Royale game server in Java (Netty/WebSocket) with authoritative architecture, FlatBuffers serialization, behavior-tree AI bots, and server-side anti-cheat
**Delivery Practices:** Unit testing, code review, production debugging, CI/CD, AI-assisted development workflows
**Languages (Spoken):** Vietnamese (Native), English (TOEIC 600+)
+48 -43
View File
@@ -49,6 +49,53 @@
<li>GitHub: <a href="https://github.com/tiennm99">tiennm99</a></li>
<li>Telegram: <a href="https://t.me/tiennm5">tiennm5</a></li>
</ul>
<h1>Experience</h1>
<h2><strong>Senior Software Engineer</strong>, ZingPlay Game Studios, VNG Corp. -- HCMC, Vietnam</h2>
<p>July 2020 present</p>
<p>Progressed from Game Programming Fresher to Senior Software Engineer over 5+ years building and operating production backends for real-time multiplayer games, collaborating daily with client, QA, release, and product stakeholders.</p>
<ul>
<li>
<p><a href="https://play.google.com/store/apps/details?id=vn.zps.tl2">Chaos Age 2</a>: Built and operated gameplay systems, battle synchronization, matchmaking, payments/webpay, admin tooling, automated tests, and delivery pipelines as primary Java backend contributor</p>
</li>
<li>
<p>Built and maintained Java 21 backend modules with Netty/Vert.x, Couchbase, Redis, Kafka, Gradle, JUnit 5, Mockito, Docker-based local dependencies, and GitLab CI pipelines; used automated tests around gameplay, payment, and release-critical flows</p>
</li>
<li>
<p>Applied OOP and design patterns to reusable packet handlers, gameplay workflows, payment/config modules, and admin tooling for live products</p>
</li>
<li>
<p><a href="https://play.google.com/store/apps/details?id=zps.games.burkozel">Burkozel</a>, <a href="https://play.google.com/store/apps/details?id=zps.games.show">Show</a>, and <a href="https://play.google.com/store/apps/details?id=vn.kvtm.js">Sky Garden</a>: Diagnosed and fixed live concurrency issues; maintained backend gameplay events, payment/config updates, metrics, and release support</p>
</li>
<li>
<p>Built an internal Claude Code plugin/skill marketplace and Java game-server scaffolding guidance, standardizing packet-handler generation, framework usage, and AI-assisted delivery workflows</p>
</li>
</ul>
<h1>Projects</h1>
<h2><strong><a href="https://github.com/tiennm99/store-scraper-bot">Store Scraper Bot</a> / <a href="https://github.com/tiennm99/store-scraper-bot-java">Java original</a></strong></h2>
<p>Nov 2025 present</p>
<p>Telegram bot for tracking Apple App Store and Google Play app updates; original Java 21 implementation later ported to Node.js/Vercel.</p>
<ul>
<li>Built Java bot with Gradle, MongoDB, command-pattern Telegram handlers, reusable repository abstractions, Docker Compose, and JUnit scraper tests; ported to serverless Node.js with Upstash Redis, Vercel Cron, and GitHub Actions checks</li>
</ul>
<h2><strong><a href="https://github.com/tiennm99/gomoku">Gomoku</a></strong></h2>
<p>2026</p>
<p>Multiplayer Gomoku game with authoritative Go WebSocket backend, protobuf binary messages, Docker Compose, GitHub Actions CI, and Phaser client.</p>
<ul>
<li>Designed server-authoritative gameplay (move validation, win detection, PVP/PVE/spectator modes, minimax AI with alpha-beta pruning) with Go tests over game, lobby, and codec flows; CI runs vet, tests, and builds</li>
</ul>
<h2><strong><a href="https://github.com/tiennm99/miti99bot">miti99bot</a></strong></h2>
<p>May 2026 present</p>
<p>Modular Go Telegram bot framework on AWS Lambda (SAM) with pluggable KV storage providers (Firestore/DynamoDB) and AI integration with rate limiting.</p>
<ul>
<li>Covered modules, storage providers, and AI rate limiting with 53 Go test files; GitHub Actions CI plus OIDC-authenticated AWS deploy pipeline</li>
</ul>
<h1>Skills</h1>
<p><strong>Languages:</strong> Java, Go, JavaScript/TypeScript, Shell</p>
<p><strong>Frameworks &amp; Libraries:</strong> Netty, Vert.x, Spring Boot, JUnit 5, Mockito, Cocos2d-x, Godot, WebSocket</p>
<p><strong>Data &amp; Messaging:</strong> Couchbase, Redis, MySQL, Kafka, ClickHouse</p>
<p><strong>Infrastructure &amp; DevOps:</strong> Docker, GitLab CI, GitHub Actions, Linux, AWS Lambda/SAM, Cloudflare Workers, Vercel</p>
<p><strong>Architecture:</strong> OOP and design patterns, reusable components, real-time multiplayer game-server architecture, event-driven design</p>
<p><strong>Delivery Practices:</strong> Unit testing, code review, production debugging, continuous integration and delivery (CI/CD), DevOps collaboration, AI-assisted development workflows</p>
<h1>Education</h1>
<h2><strong>Ho Chi Minh City University of Technology</strong>, B.E. in Computer Science and Engineering -- HCMC, Vietnam</h2>
<p>Sept 2017 June 2023</p>
@@ -57,51 +104,9 @@
<p>GPA: 8.0/10 — Academic Excellence Scholarship; Five Good Student Award</p>
</li>
<li>
<p>Thesis: Survival2D — 2D multiplayer Battle Royale game server in Java (Netty/WebSocket); authoritative architecture, FlatBuffers serialization (76% packet reduction vs JSON), behavior tree AI bots, and server-side anti-cheat</p>
<p>Thesis: Survival2D — multiplayer Battle Royale game server in Java (Netty/WebSocket) with authoritative architecture, FlatBuffers serialization, behavior-tree AI bots, and server-side anti-cheat</p>
</li>
</ul>
<h1>Experience</h1>
<h2><strong>Senior Software Engineer</strong>, ZingPlay Game Studios, VNG Corp. -- HCMC, Vietnam</h2>
<p>July 2020 present</p>
<p>Progressed from Game Programming Fresher to Senior Software Engineer. Focuses on Java game backends, live operations, delivery automation, and collaboration with client, QA, release, and product stakeholders.</p>
<ul>
<li>
<p><a href="https://play.google.com/store/apps/details?id=vn.zps.tl2">Chaos Age 2</a>: Primary Java server contributor across gameplay, battle sync, matchmaking, payment/webpay, admin tooling, tests, and delivery automation</p>
</li>
<li>
<p>Built and maintained Java 21 backend modules with Netty/Vert.x, Couchbase, Redis, Kafka, Gradle, JUnit 5, Mockito, Docker-based local dependencies, and GitLab CI pipelines; used tests around gameplay, payment, and release-critical flows</p>
</li>
<li>
<p><a href="https://play.google.com/store/apps/details?id=zps.games.burkozel">Burkozel</a> and <a href="https://play.google.com/store/apps/details?id=zps.games.show">Show</a>: Implemented and maintained backend gameplay events, payment/config updates, tests, metrics, concurrency fixes, live diagnostics, and release support</p>
</li>
<li>
<p><a href="https://play.google.com/store/apps/details?id=vn.kvtm.js">Sky Garden</a> / KVTM: Maintained Java server features, web payment fixes, Redis/runtime diagnostics, GM tooling, CI/deploy support, and Godot migration support</p>
</li>
<li>
<p>Built internal Claude Code plugin/skill marketplace and Java game-server scaffolding guidance to standardize packet-handler generation, framework usage, and AI-assisted delivery workflows</p>
</li>
</ul>
<h1>Projects</h1>
<h2><strong><a href="https://github.com/tiennm99/store-scraper-bot">Store Scraper Bot</a> / <a href="https://github.com/tiennm99/store-scraper-bot-java">Java original</a></strong></h2>
<p>Nov 2025 present</p>
<p>Telegram bot for tracking Apple App Store and Google Play metadata changes; originally built in Java, then ported to JavaScript.</p>
<h2><strong><a href="https://github.com/tiennm99/gomoku">Gomoku</a></strong></h2>
<p>2026</p>
<p>Multiplayer Gomoku game with Go WebSocket backend, protobuf messaging, Docker support, PVP/PVE/spectator modes, and Phaser client.</p>
<h2><strong><a href="https://github.com/tiennm99/rplace">Rplace</a></strong></h2>
<p>2026</p>
<p>Collaborative pixel-art canvas using Svelte, Hono, Cloudflare Workers, and Durable Object SQLite.</p>
<h2><strong><a href="https://github.com/tiennm99/db-keepalive">DB Keepalive</a></strong></h2>
<p>2026</p>
<p>Pluggable Go daemon for keeping free-tier database clusters active across Redis, Valkey, PostgreSQL, MySQL, MongoDB, and Couchbase.</p>
<h1>Skills</h1>
<p><strong>Languages:</strong> Java, Go, JavaScript/TypeScript, Shell</p>
<p><strong>Frameworks &amp; Libraries:</strong> Netty, Vert.x, Spring Boot, JUnit 5, Mockito, Cocos2d-x, Godot</p>
<p><strong>Databases:</strong> Couchbase, Redis, MySQL, Kafka, ClickHouse</p>
<p><strong>Infrastructure &amp; DevOps:</strong> Docker, GitLab CI, GitHub Actions, Linux, AWS Lambda/SAM, Cloudflare Workers</p>
<p><strong>Architecture:</strong> Object-oriented design, game server architecture, real-time multiplayer systems, event-driven design, clean reusable code</p>
<p><strong>Delivery Practices:</strong> Unit testing, code review, production debugging, CI/CD, AI-assisted development workflows</p>
<p><strong>Languages (Spoken):</strong> Vietnamese (Native), English (TOEIC 600+)</p>
</article>
</body>
+935 -2850
View File
File diff suppressed because it is too large Load Diff
+53 -73
View File
@@ -10,10 +10,10 @@
locale-catalog-language: "en",
text-direction: ltr,
page-size: "us-letter",
page-top-margin: 0.7in,
page-bottom-margin: 0.7in,
page-left-margin: 0.7in,
page-right-margin: 0.7in,
page-top-margin: 0.45in,
page-bottom-margin: 0.45in,
page-left-margin: 0.55in,
page-right-margin: 0.55in,
page-show-footer: false,
page-show-top-note: true,
colors-body: rgb(0, 0, 0),
@@ -24,7 +24,7 @@
colors-links: rgb(0, 0, 0),
colors-footer: rgb(128, 128, 128),
colors-top-note: rgb(128, 128, 128),
typography-line-spacing: 0.6em,
typography-line-spacing: 0.5em,
typography-alignment: "justified",
typography-date-and-location-column-alignment: right,
typography-font-family-body: "XCharter",
@@ -48,10 +48,10 @@
links-underline: true,
links-show-external-link-icon: false,
header-alignment: center,
header-photo-width: 3.5cm,
header-space-below-name: 0.7cm,
header-space-below-headline: 0.7cm,
header-space-below-connections: 0.7cm,
header-photo-width: 3cm,
header-space-below-name: 0.3cm,
header-space-below-headline: 0.3cm,
header-space-below-connections: 0.3cm,
header-connections-hyperlink: true,
header-connections-show-icons: false,
header-connections-display-urls-instead-of-usernames: true,
@@ -59,11 +59,11 @@
header-connections-space-between-connections: 0.5cm,
section-titles-type: "with_full_line",
section-titles-line-thickness: 0.5pt,
section-titles-space-above: 0.5cm,
section-titles-space-below: 0.3cm,
section-titles-space-above: 0.3cm,
section-titles-space-below: 0.2cm,
sections-allow-page-break: true,
sections-space-between-text-based-entries: 0.15cm,
sections-space-between-regular-entries: 0.42cm,
sections-space-between-text-based-entries: 0.2em,
sections-space-between-regular-entries: 0.7em,
entries-date-and-location-width: 4.15cm,
entries-side-space: 0cm,
entries-space-between-columns: 0.1cm,
@@ -86,16 +86,9 @@
)
#grid(
columns: (auto, 1fr),
column-gutter: 0cm,
align: horizon + left,
[#pad(left: 0.4cm, right: 0.4cm, image("avatar.jpg", width: 3.5cm))
],
[
= Tien Nguyen Minh
#headline([Senior Java Software Engineer])
#headline([Senior Java Software Engineer | Java 21, Real-Time Backends, CI\/CD, AI-Assisted Delivery])
#connections(
[HCMC, Vietnam],
@@ -106,29 +99,8 @@
[#link("https://github.com/tiennm99", icon: false, if-underline: false, if-color: false)[github.com\/tiennm99]],
[#link("https://t.me/tiennm5", icon: false, if-underline: false, if-color: false)[t.me\/tiennm5]],
)
]
)
== Education
#education-entry(
[
#strong[Ho Chi Minh City University of Technology], B.E. in Computer Science and Engineering -- HCMC, Vietnam
],
[
Sept 2017 June 2023
],
main-column-second-row: [
- GPA: 8.0\/10 Academic Excellence Scholarship; Five Good Student Award
- Thesis: Survival2D 2D multiplayer Battle Royale game server in Java (Netty\/WebSocket); authoritative architecture, FlatBuffers serialization (76\% packet reduction vs JSON), behavior tree AI bots, and server-side anti-cheat
],
)
== Experience
#regular-entry(
@@ -141,17 +113,17 @@
],
main-column-second-row: [
#summary[Progressed from Game Programming Fresher to Senior Software Engineer. Focuses on Java game backends, live operations, delivery automation, and collaboration with client, QA, release, and product stakeholders.]
#summary[Progressed from Game Programming Fresher to Senior Software Engineer over 5+ years building and operating production backends for real-time multiplayer games, collaborating daily with client, QA, release, and product stakeholders.]
- #link("https://play.google.com/store/apps/details?id=vn.zps.tl2")[Chaos Age 2]: Primary Java server contributor across gameplay, battle sync, matchmaking, payment\/webpay, admin tooling, tests, and delivery automation
- #link("https://play.google.com/store/apps/details?id=vn.zps.tl2")[Chaos Age 2]: Built and operated gameplay systems, battle synchronization, matchmaking, payments\/webpay, admin tooling, automated tests, and delivery pipelines as primary Java backend contributor
- Built and maintained Java 21 backend modules with Netty\/Vert.x, Couchbase, Redis, Kafka, Gradle, JUnit 5, Mockito, Docker-based local dependencies, and GitLab CI pipelines; used tests around gameplay, payment, and release-critical flows
- Built and maintained Java 21 backend modules with Netty\/Vert.x, Couchbase, Redis, Kafka, Gradle, JUnit 5, Mockito, Docker-based local dependencies, and GitLab CI pipelines; used automated tests around gameplay, payment, and release-critical flows
- #link("https://play.google.com/store/apps/details?id=zps.games.burkozel")[Burkozel] and #link("https://play.google.com/store/apps/details?id=zps.games.show")[Show]: Implemented and maintained backend gameplay events, payment\/config updates, tests, metrics, concurrency fixes, live diagnostics, and release support
- Applied OOP and design patterns to reusable packet handlers, gameplay workflows, payment\/config modules, and admin tooling for live products
- #link("https://play.google.com/store/apps/details?id=vn.kvtm.js")[Sky Garden] \/ KVTM: Maintained Java server features, web payment fixes, Redis\/runtime diagnostics, GM tooling, CI\/deploy support, and Godot migration support
- #link("https://play.google.com/store/apps/details?id=zps.games.burkozel")[Burkozel], #link("https://play.google.com/store/apps/details?id=zps.games.show")[Show], and #link("https://play.google.com/store/apps/details?id=vn.kvtm.js")[Sky Garden]: Diagnosed and fixed live concurrency issues; maintained backend gameplay events, payment\/config updates, metrics, and release support
- Built internal Claude Code plugin\/skill marketplace and Java game-server scaffolding guidance to standardize packet-handler generation, framework usage, and AI-assisted delivery workflows
- Built an internal Claude Code plugin\/skill marketplace and Java game-server scaffolding guidance, standardizing packet-handler generation, framework usage, and AI-assisted delivery workflows
],
)
@@ -168,7 +140,9 @@
],
main-column-second-row: [
#summary[Telegram bot for tracking Apple App Store and Google Play metadata changes; originally built in Java, then ported to JavaScript.]
#summary[Telegram bot for tracking Apple App Store and Google Play app updates; original Java 21 implementation later ported to Node.js\/Vercel.]
- Built Java bot with Gradle, MongoDB, command-pattern Telegram handlers, reusable repository abstractions, Docker Compose, and JUnit scraper tests; ported to serverless Node.js with Upstash Redis, Vercel Cron, and GitHub Actions checks
],
)
@@ -183,37 +157,26 @@
],
main-column-second-row: [
#summary[Multiplayer Gomoku game with Go WebSocket backend, protobuf messaging, Docker support, PVP\/PVE\/spectator modes, and Phaser client.]
#summary[Multiplayer Gomoku game with authoritative Go WebSocket backend, protobuf binary messages, Docker Compose, GitHub Actions CI, and Phaser client.]
- Designed server-authoritative gameplay (move validation, win detection, PVP\/PVE\/spectator modes, minimax AI with alpha-beta pruning) with Go tests over game, lobby, and codec flows; CI runs vet, tests, and builds
],
)
#regular-entry(
[
#strong[#link("https://github.com/tiennm99/rplace")[Rplace]]
#strong[#link("https://github.com/tiennm99/miti99bot")[miti99bot]]
],
[
2026
May 2026 present
],
main-column-second-row: [
#summary[Collaborative pixel-art canvas using Svelte, Hono, Cloudflare Workers, and Durable Object SQLite.]
#summary[Modular Go Telegram bot framework on AWS Lambda (SAM) with pluggable KV storage providers (Firestore\/DynamoDB) and AI integration with rate limiting.]
],
)
#regular-entry(
[
#strong[#link("https://github.com/tiennm99/db-keepalive")[DB Keepalive]]
],
[
2026
],
main-column-second-row: [
#summary[Pluggable Go daemon for keeping free-tier database clusters active across Redis, Valkey, PostgreSQL, MySQL, MongoDB, and Couchbase.]
- Covered modules, storage providers, and AI rate limiting with 53 Go test files; GitHub Actions CI plus OIDC-authenticated AWS deploy pipeline
],
)
@@ -222,14 +185,31 @@
#strong[Languages:] Java, Go, JavaScript\/TypeScript, Shell
#strong[Frameworks & Libraries:] Netty, Vert.x, Spring Boot, JUnit 5, Mockito, Cocos2d-x, Godot
#strong[Frameworks & Libraries:] Netty, Vert.x, Spring Boot, JUnit 5, Mockito, Cocos2d-x, Godot, WebSocket
#strong[Databases:] Couchbase, Redis, MySQL, Kafka, ClickHouse
#strong[Data & Messaging:] Couchbase, Redis, MySQL, Kafka, ClickHouse
#strong[Infrastructure & DevOps:] Docker, GitLab CI, GitHub Actions, Linux, AWS Lambda\/SAM, Cloudflare Workers
#strong[Infrastructure & DevOps:] Docker, GitLab CI, GitHub Actions, Linux, AWS Lambda\/SAM, Cloudflare Workers, Vercel
#strong[Architecture:] Object-oriented design, game server architecture, real-time multiplayer systems, event-driven design, clean reusable code
#strong[Architecture:] OOP and design patterns, reusable components, real-time multiplayer game-server architecture, event-driven design
#strong[Delivery Practices:] Unit testing, code review, production debugging, CI\/CD, AI-assisted development workflows
#strong[Delivery Practices:] Unit testing, code review, production debugging, continuous integration and delivery (CI\/CD), DevOps collaboration, AI-assisted development workflows
#strong[Languages (Spoken):] Vietnamese (Native), English (TOEIC 600+)
== Education
#education-entry(
[
#strong[Ho Chi Minh City University of Technology], B.E. in Computer Science and Engineering -- HCMC, Vietnam
],
[
Sept 2017 June 2023
],
main-column-second-row: [
- GPA: 8.0\/10 Academic Excellence Scholarship; Five Good Student Award
- Thesis: Survival2D multiplayer Battle Royale game server in Java (Netty\/WebSocket) with authoritative architecture, FlatBuffers serialization, behavior-tree AI bots, and server-side anti-cheat
],
)
+67 -52
View File
@@ -1,10 +1,9 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/rendercv/rendercv/refs/tags/v2.8/schema.json
cv:
name: Tien Nguyen Minh
headline: Senior Java Software Engineer | Java 21, Backend Systems, Real-Time Multiplayer, CI/CD
headline: Senior Java Software Engineer | Java 21, Real-Time Backends, CI/CD, AI-Assisted Delivery
location: HCMC, Vietnam
email: tiennm99@outlook.com
photo: avatar.jpg
phone: (+84) 869 156 149
website: https://miti99.com/
social_networks:
@@ -15,6 +14,51 @@ cv:
- network: Telegram
username: tiennm5
sections:
experience:
- company: ZingPlay Game Studios, VNG Corp.
position: Senior Software Engineer
date:
start_date: 2020-07
end_date: present
location: HCMC, Vietnam
summary: Progressed from Game Programming Fresher to Senior Software Engineer over 5+ years building and operating production backends for real-time multiplayer games, collaborating daily with client, QA, release, and product stakeholders.
highlights:
- "[Chaos Age 2](https://play.google.com/store/apps/details?id=vn.zps.tl2): Built and operated gameplay systems, battle synchronization, matchmaking, payments/webpay, admin tooling, automated tests, and delivery pipelines as primary Java backend contributor"
- "Built and maintained Java 21 backend modules with Netty/Vert.x, Couchbase, Redis, Kafka, Gradle, JUnit 5, Mockito, Docker-based local dependencies, and GitLab CI pipelines; used automated tests around gameplay, payment, and release-critical flows"
- "Applied OOP and design patterns to reusable packet handlers, gameplay workflows, payment/config modules, and admin tooling for live products"
- "[Burkozel](https://play.google.com/store/apps/details?id=zps.games.burkozel), [Show](https://play.google.com/store/apps/details?id=zps.games.show), and [Sky Garden](https://play.google.com/store/apps/details?id=vn.kvtm.js): Diagnosed and fixed live concurrency issues; maintained backend gameplay events, payment/config updates, metrics, and release support"
- "Built an internal Claude Code plugin/skill marketplace and Java game-server scaffolding guidance, standardizing packet-handler generation, framework usage, and AI-assisted delivery workflows"
projects:
- name: "[Store Scraper Bot](https://github.com/tiennm99/store-scraper-bot) / [Java original](https://github.com/tiennm99/store-scraper-bot-java)"
start_date: 2025-11
end_date: present
summary: Telegram bot for tracking Apple App Store and Google Play app updates; original Java 21 implementation later ported to Node.js/Vercel.
highlights:
- "Built Java bot with Gradle, MongoDB, command-pattern Telegram handlers, reusable repository abstractions, Docker Compose, and JUnit scraper tests; ported to serverless Node.js with Upstash Redis, Vercel Cron, and GitHub Actions checks"
- name: "[Gomoku](https://github.com/tiennm99/gomoku)"
date: 2026
summary: Multiplayer Gomoku game with authoritative Go WebSocket backend, protobuf binary messages, Docker Compose, GitHub Actions CI, and Phaser client.
highlights:
- "Designed server-authoritative gameplay (move validation, win detection, PVP/PVE/spectator modes, minimax AI with alpha-beta pruning) with Go tests over game, lobby, and codec flows; CI runs vet, tests, and builds"
- name: "[miti99bot](https://github.com/tiennm99/miti99bot)"
start_date: 2026-05
end_date: present
summary: Modular Go Telegram bot framework on AWS Lambda (SAM) with pluggable KV storage providers (Firestore/DynamoDB) and AI integration with rate limiting.
highlights:
- "Covered modules, storage providers, and AI rate limiting with 53 Go test files; GitHub Actions CI plus OIDC-authenticated AWS deploy pipeline"
skills:
- label: Languages
details: Java, Go, JavaScript/TypeScript, Shell
- label: Frameworks & Libraries
details: Netty, Vert.x, Spring Boot, JUnit 5, Mockito, Cocos2d-x, Godot, WebSocket
- label: Data & Messaging
details: Couchbase, Redis, MySQL, Kafka, ClickHouse
- label: Infrastructure & DevOps
details: Docker, GitLab CI, GitHub Actions, Linux, AWS Lambda/SAM, Cloudflare Workers, Vercel
- label: Architecture
details: OOP and design patterns, reusable components, real-time multiplayer game-server architecture, event-driven design
- label: Delivery Practices
details: Unit testing, code review, production debugging, continuous integration and delivery (CI/CD), DevOps collaboration, AI-assisted development workflows
education:
- institution: Ho Chi Minh City University of Technology
area: Computer Science and Engineering
@@ -25,58 +69,29 @@ cv:
location: HCMC, Vietnam
highlights:
- "GPA: 8.0/10 — Academic Excellence Scholarship; Five Good Student Award"
- "Thesis: Survival2D — 2D multiplayer Battle Royale game server in Java (Netty/WebSocket); authoritative architecture, FlatBuffers serialization to reduce packet size compared with JSON, behavior tree AI bots, and server-side anti-cheat"
experience:
- company: ZingPlay Game Studios, VNG Corp.
position: Senior Software Engineer
date:
start_date: 2020-07
end_date: present
location: HCMC, Vietnam
summary: Senior Java engineer with 5+ years building and operating production backends for real-time multiplayer games. Experienced in Java 21, Netty/Vert.x, Redis, Couchbase, Kafka, automated testing, CI/CD, production debugging, and cross-functional delivery.
highlights:
- "[Chaos Age 2](https://play.google.com/store/apps/details?id=vn.zps.tl2): Primary Java backend contributor for gameplay systems, battle synchronization, matchmaking, payments/webpay, admin tooling, automated tests, and delivery pipelines"
- "Built and maintained Java 21 backend modules with Netty/Vert.x, Couchbase, Redis, Kafka, Gradle, JUnit 5, Mockito, Docker-based local dependencies, and GitLab CI pipelines; used automated tests around gameplay, payment, and release-critical flows"
- "Applied OOP and design patterns to reusable packet handlers, gameplay workflows, payment/config modules, and admin tooling for live products"
- "[Burkozel](https://play.google.com/store/apps/details?id=zps.games.burkozel), [Show](https://play.google.com/store/apps/details?id=zps.games.show), and [Sky Garden](https://play.google.com/store/apps/details?id=vn.kvtm.js): Maintained backend gameplay events, payment/config updates, metrics, concurrency fixes, live diagnostics, Redis/runtime debugging, CI/deploy support, and release support"
- "Standardized Java game-server scaffolding, packet-handler generation, framework usage, and AI-assisted delivery workflows with documented guidance"
projects:
- name: "[Store Scraper Bot](https://github.com/tiennm99/store-scraper-bot) / [Java original](https://github.com/tiennm99/store-scraper-bot-java)"
start_date: 2025-11
end_date: present
summary: Telegram bot for tracking Apple App Store and Google Play app updates; original Java 21 implementation later ported to Node.js/Vercel.
highlights:
- "Built Java bot with Gradle, MongoDB, Telegram command handlers, reusable repository abstractions, Docker/Compose setup, and JUnit scraper tests"
- "Ported operational bot to serverless Node.js with Upstash Redis, Vercel Cron, webhook/cron request validation, and GitHub Actions syntax/leak checks"
- name: "[Gomoku](https://github.com/tiennm99/gomoku)"
date: 2026
summary: Multiplayer Gomoku game with authoritative Go WebSocket backend, protobuf binary messages, Docker Compose, GitHub Actions CI, and Phaser client.
highlights:
- "Designed server-authoritative gameplay with move validation, win detection, PVP/PVE/spectator modes, per-player state machine, and minimax AI"
- "Covered game, lobby, network codec, and state flows with Go tests; CI runs go vet, go test, server build, and client build"
- name: "[Rplace](https://github.com/tiennm99/rplace)"
date: 2026
summary: Collaborative pixel canvas on Cloudflare Workers using Durable Object SQLite storage, WebSocket pixel broadcasts, edge validation, and Svelte client.
highlights:
- "Implemented batch pixel placement, per-user cooldowns, real-time broadcast, and 4096x4096 canvas chunking"
- "Added Vitest coverage for worker validation, Durable Object storage, canvas loading, cookies, WebSocket behavior, and rate limits"
skills:
- label: Languages
details: Java, Go, JavaScript/TypeScript, Shell
- label: Frameworks & Libraries
details: Netty, Vert.x, Spring Boot, JUnit 5, Mockito, Cocos2d-x, Godot, WebSocket
- label: Databases
details: Couchbase, Redis, MySQL, Kafka, ClickHouse
- label: Infrastructure & DevOps
details: Docker, GitLab CI, GitHub Actions, Linux, AWS Lambda/SAM, Cloudflare Workers, Vercel
- label: Architecture
details: Object-oriented design, reusable backend components, game server architecture, real-time multiplayer systems, event-driven design
- label: Delivery Practices
details: Unit testing, code review, production debugging, CI/CD, DevOps collaboration, AI-assisted development workflows
- label: Languages (Spoken)
details: Vietnamese (Native), English (TOEIC 600+)
- "Thesis: Survival2D — multiplayer Battle Royale game server in Java (Netty/WebSocket) with authoritative architecture, FlatBuffers serialization, behavior-tree AI bots, and server-side anti-cheat"
design:
theme: engineeringresumes
page:
top_margin: 0.45in
bottom_margin: 0.45in
left_margin: 0.55in
right_margin: 0.55in
header:
photo_width: 3cm
space_below_name: 0.3cm
space_below_headline: 0.3cm
space_below_connections: 0.3cm
section_titles:
space_above: 0.3cm
space_below: 0.2cm
sections:
space_between_regular_entries: 0.7em
space_between_text_based_entries: 0.2em
typography:
line_spacing: 0.5em
font_size:
body: 10pt
# page:
# size: us-letter
# top_margin: 0.7in