chore: auto-render CV

This commit is contained in:
github-actions[bot] committed 2026-06-11 06:43:48 +00:00
1 parent 4e6bf2ae58
commit 5fabec1987
4 files changed
+985 -1053

No files matched your search

+26 -26
View File
@@ -10,7 +10,7 @@
# Education
## **Ho Chi Minh City University of Technology**, B.E. in Computer Science in Computer Science and Engineering -- HCMC, Vietnam
## **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
@@ -24,50 +24,50 @@ Sept 2017 – June 2023
July 2020 – present
Progressed from Game Programming Fresher to Senior Software Engineer. Builds and maintains Java game backends and production tooling with cross-functional work across server, client, QA, and release workflows.
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.
- [Chaos Age 2](https://play.google.com/store/apps/details?id=vn.zps.tl2): Sole server developer for a global strategy game; built Java 21 backend modules with Netty/Vert.x, Couchbase, Redis, Kafka, Gradle, and GitLab CI/CD
- [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
- Improved delivery quality with JUnit 5/Mockito tests, load-test clients, Docker-based local dependencies, and multi-environment build/deploy 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 tests around gameplay, payment, and release-critical flows
- Built internal AI-assisted Claude Code skills/plugin marketplace for ZingPlay game-server development, including typed packet-handler scaffolding and framework guidance
- [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
- [Sky Garden](https://play.google.com/store/apps/details?id=vn.kvtm.js): Maintained production Java server features for a live farm game; handled event logic, web payment fixes, Redis/runtime diagnostics, and release support
- [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
- [Show](https://play.google.com/store/apps/details?id=zps.games.show), [Burkozel](https://play.google.com/store/apps/details?id=zps.games.burkozel), and [Bida3D](https://play.google.com/store/apps/details?id=zps.games.bida3d.vn): Delivered server-side gameplay, matchmaking, and client logic across real-time card and pool games
- 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
# Projects
## **[MiTiSrv](https://github.com/tiennm99/mitisrv)**
2018 – 2025
Lightweight Java game server framework using Netty; personal framework for experimenting with reusable multiplayer server architecture.
## **[Test Sharding](https://github.com/tiennm99/test-sharding)**
2025
Java server experiment for sharding with Couchbase replication, Redis replication, and Kafka.
## **[Store Scraper Bot](https://github.com/tiennm99/store-scraper-bot) / [Java original](https://github.com/tiennm99/store-scraper-bot-java)**
Nov 2025 – present
Telegram bot for tracking Apple App Store and Google Play metadata updates; original Java version later ported to JavaScript.
Telegram bot for tracking Apple App Store and Google Play metadata changes; originally built in Java, then ported to JavaScript.
## **[Miti99bot](https://github.com/tiennm99/miti99bot)**
## **[Gomoku](https://github.com/tiennm99/gomoku)**
2026
Go Telegram bot framework deployed serverlessly on AWS Lambda/SAM with Firestore and Gemini integration.
Multiplayer Gomoku game with Go WebSocket backend, protobuf messaging, Docker support, PVP/PVE/spectator modes, and Phaser client.
## **[Rplace](https://github.com/tiennm99/rplace)**
2026
Collaborative pixel-art canvas using Svelte, Hono, Cloudflare Workers, and Durable Object SQLite.
## **[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.
+16 -16
View File
@@ -50,7 +50,7 @@
<li>Telegram: <a href="https://t.me/tiennm5">tiennm5</a></li>
</ul>
<h1>Education</h1>
<h2><strong>Ho Chi Minh City University of Technology</strong>, B.E. in Computer Science in Computer Science and Engineering -- HCMC, Vietnam</h2>
<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>
<ul>
<li>
@@ -63,37 +63,37 @@
<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. Builds and maintains Java game backends and production tooling with cross-functional work across server, client, QA, and release workflows.</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>: Sole server developer for a global strategy game; built Java 21 backend modules with Netty/Vert.x, Couchbase, Redis, Kafka, Gradle, and GitLab CI/CD</p>
<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>Improved delivery quality with JUnit 5/Mockito tests, load-test clients, Docker-based local dependencies, and multi-environment build/deploy pipelines</p>
<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>Built internal AI-assisted Claude Code skills/plugin marketplace for ZingPlay game-server development, including typed packet-handler scaffolding and framework guidance</p>
<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>: Maintained production Java server features for a live farm game; handled event logic, web payment fixes, Redis/runtime diagnostics, and release support</p>
<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><a href="https://play.google.com/store/apps/details?id=zps.games.show">Show</a>, <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.bida3d.vn">Bida3D</a>: Delivered server-side gameplay, matchmaking, and client logic across real-time card and pool games</p>
<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/mitisrv">MiTiSrv</a></strong></h2>
<p>2018 – 2025</p>
<p>Lightweight Java game server framework using Netty; personal framework for experimenting with reusable multiplayer server architecture.</p>
<h2><strong><a href="https://github.com/tiennm99/test-sharding">Test Sharding</a></strong></h2>
<p>2025</p>
<p>Java server experiment for sharding with Couchbase replication, Redis replication, and Kafka.</p>
<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 updates; original Java version later ported to JavaScript.</p>
<h2><strong><a href="https://github.com/tiennm99/miti99bot">Miti99bot</a></strong></h2>
<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>Go Telegram bot framework deployed serverlessly on AWS Lambda/SAM with Firestore and Gemini integration.</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>
+903 -970
View File
File diff suppressed because it is too large. Load diff
+40 -41
View File
@@ -105,7 +105,6 @@
[#link("https://linkedin.com/in/miti99", icon: false, if-underline: false, if-color: false)[linkedin.com\/in\/miti99]],
[#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]],
[#link("https://www.facebook.com/tiennm99/", icon: false, if-underline: false, if-color: false)[fb.com\/tiennm99]],
)
]
)
@@ -115,7 +114,7 @@
#education-entry(
[
#strong[Ho Chi Minh City University of Technology], B.E. in Computer Science in Computer Science and Engineering -- HCMC, Vietnam
#strong[Ho Chi Minh City University of Technology], B.E. in Computer Science and Engineering -- HCMC, Vietnam
],
[
@@ -142,53 +141,23 @@
],
main-column-second-row: [
#summary[Progressed from Game Programming Fresher to Senior Software Engineer. Builds and maintains Java game backends and production tooling with cross-functional work across server, client, QA, and release workflows.]
#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.]
- #link("https://play.google.com/store/apps/details?id=vn.zps.tl2")[Chaos Age 2]: Sole server developer for a global strategy game; built Java 21 backend modules with Netty\/Vert.x, Couchbase, Redis, Kafka, Gradle, and GitLab CI\/CD
- #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
- Improved delivery quality with JUnit 5\/Mockito tests, load-test clients, Docker-based local dependencies, and multi-environment build\/deploy 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 tests around gameplay, payment, and release-critical flows
- Built internal AI-assisted Claude Code skills\/plugin marketplace for ZingPlay game-server development, including typed packet-handler scaffolding and framework guidance
- #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
- #link("https://play.google.com/store/apps/details?id=vn.kvtm.js")[Sky Garden]: Maintained production Java server features for a live farm game; handled event logic, web payment fixes, Redis\/runtime diagnostics, and release support
- #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.show")[Show], #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.bida3d.vn")[Bida3D]: Delivered server-side gameplay, matchmaking, and client logic across real-time card and pool games
- 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
],
)
== Projects
#regular-entry(
[
#strong[#link("https://github.com/tiennm99/mitisrv")[MiTiSrv]]
],
[
2018 – 2025
],
main-column-second-row: [
#summary[Lightweight Java game server framework using Netty; personal framework for experimenting with reusable multiplayer server architecture.]
],
)
#regular-entry(
[
#strong[#link("https://github.com/tiennm99/test-sharding")[Test Sharding]]
],
[
2025
],
main-column-second-row: [
#summary[Java server experiment for sharding with Couchbase replication, Redis replication, and Kafka.]
],
)
#regular-entry(
[
#strong[#link("https://github.com/tiennm99/store-scraper-bot")[Store Scraper Bot] \/ #link("https://github.com/tiennm99/store-scraper-bot-java")[Java original]]
@@ -199,14 +168,14 @@
],
main-column-second-row: [
#summary[Telegram bot for tracking Apple App Store and Google Play metadata updates; original Java version later ported to JavaScript.]
#summary[Telegram bot for tracking Apple App Store and Google Play metadata changes; originally built in Java, then ported to JavaScript.]
],
)
#regular-entry(
[
#strong[#link("https://github.com/tiennm99/miti99bot")[Miti99bot]]
#strong[#link("https://github.com/tiennm99/gomoku")[Gomoku]]
],
[
@@ -214,7 +183,37 @@
],
main-column-second-row: [
#summary[Go Telegram bot framework deployed serverlessly on AWS Lambda\/SAM with Firestore and Gemini integration.]
#summary[Multiplayer Gomoku game with Go WebSocket backend, protobuf messaging, Docker support, PVP\/PVE\/spectator modes, and Phaser client.]
],
)
#regular-entry(
[
#strong[#link("https://github.com/tiennm99/rplace")[Rplace]]
],
[
2026
],
main-column-second-row: [
#summary[Collaborative pixel-art canvas using Svelte, Hono, Cloudflare Workers, and Durable Object SQLite.]
],
)
#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.]
],
)