mirror of
https://github.com/tiennm99/cv.git
synced 2026-09-03 18:16:43 +00:00
chore: auto-render CV
This commit is contained in:
@@ -24,52 +24,64 @@ Sept 2017 – June 2023
|
||||
|
||||
July 2020 – present
|
||||
|
||||
Progressed from Game Programming Fresher to Senior Software Engineer. Focused on scalable game server architecture in Java (Netty, Vert.x), with cross-functional contributions to client-side logic in Cocos2d-x and Godot.
|
||||
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.
|
||||
|
||||
- [Chaos Age 2](https://play.google.com/store/apps/details?id=vn.zps.tl2): Sole server developer; architected backend from scratch for a global strategy game, 300+ CCU; assisted client team with networking and game logic
|
||||
- [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
|
||||
|
||||
- [Show](https://play.google.com/store/apps/details?id=zps.games.show) & [Burkozel](https://play.google.com/store/apps/details?id=zps.games.burkozel): Full-stack contributor on two real-time card games for Myanmar and Russian-speaking markets; delivered server-side logic and client features
|
||||
- Improved delivery quality with JUnit 5/Mockito tests, load-test clients, Docker-based local dependencies, and multi-environment build/deploy pipelines
|
||||
|
||||
- [Bida3D](https://play.google.com/store/apps/details?id=zps.games.bida3d.vn): Implemented matchmaking (server) and cue direction logic (client) for a global 8-ball pool game; applied physics and geometry for accurate ball trajectory simulation
|
||||
- Built internal AI-assisted Claude Code skills/plugin marketplace for ZingPlay game-server development, including typed packet-handler scaffolding and framework guidance
|
||||
|
||||
- [Sky Garden](https://play.google.com/store/apps/details?id=vn.kvtm.js): Maintained server stability for a live farm game (~5,000 CCU); resolved production issues and developed new event features
|
||||
- [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
|
||||
|
||||
- [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
|
||||
|
||||
|
||||
|
||||
# Projects
|
||||
## **[VN GeoGuessr](https://github.com/tiennm99/vngeoguessr)**
|
||||
## **[MiTiSrv](https://github.com/tiennm99/mitisrv)**
|
||||
|
||||
Aug 2025
|
||||
2018 – 2025
|
||||
|
||||
Location-guessing game for Vietnam using Leaflet.js, Mapillary, and OpenStreetMap with street-level panoramic imagery and map-based scoring.
|
||||
Lightweight Java game server framework using Netty; personal framework for experimenting with reusable multiplayer server architecture.
|
||||
|
||||
|
||||
|
||||
## **[Store Scraper Bot](https://github.com/tiennm99/store-scraper-bot)**
|
||||
## **[Test Sharding](https://github.com/tiennm99/test-sharding)**
|
||||
|
||||
Nov 2025 – Dec 2025
|
||||
2025
|
||||
|
||||
Telegram bot that automates scraping and reporting of app metadata from mobile app stores.
|
||||
Java server experiment for sharding with Couchbase replication, Redis replication, and Kafka.
|
||||
|
||||
|
||||
|
||||
## **[Pet Projects & Open Source](https://github.com/tiennm99)**
|
||||
## **[Store Scraper Bot](https://github.com/tiennm99/store-scraper-bot) / [Java original](https://github.com/tiennm99/store-scraper-bot-java)**
|
||||
|
||||
2018 – present
|
||||
Nov 2025 – present
|
||||
|
||||
Various personal projects spanning game servers, bots, and web tools. Occasionally contribute to open-source projects. Full portfolio on GitHub.
|
||||
Telegram bot for tracking Apple App Store and Google Play metadata updates; original Java version later ported to JavaScript.
|
||||
|
||||
|
||||
|
||||
## **[Miti99bot](https://github.com/tiennm99/miti99bot)**
|
||||
|
||||
2026
|
||||
|
||||
Go Telegram bot framework deployed serverlessly on AWS Lambda/SAM with Firestore and Gemini integration.
|
||||
|
||||
|
||||
|
||||
# Skills
|
||||
**Languages:** Java, Go, JavaScript, Shell
|
||||
**Languages:** Java, Go, JavaScript/TypeScript, Shell
|
||||
|
||||
**Frameworks & Libraries:** Netty, Vert.x, Spring Boot, Cocos2d-x, Godot
|
||||
**Frameworks & Libraries:** Netty, Vert.x, Spring Boot, JUnit 5, Mockito, Cocos2d-x, Godot
|
||||
|
||||
**Databases:** Couchbase, Redis, MySQL, ClickHouse
|
||||
**Databases:** Couchbase, Redis, MySQL, Kafka, ClickHouse
|
||||
|
||||
**Infrastructure & DevOps:** Docker, CI/CD (GitHub Actions/GitLab CI), Git, Linux, OCI
|
||||
**Infrastructure & DevOps:** Docker, GitLab CI, GitHub Actions, Linux, AWS Lambda/SAM, Cloudflare Workers
|
||||
|
||||
**Architecture:** Game server architecture, real-time multiplayer systems, event-driven design
|
||||
**Architecture:** Object-oriented design, game server architecture, real-time multiplayer systems, event-driven design, clean reusable code
|
||||
|
||||
**Delivery Practices:** Unit testing, code review, production debugging, CI/CD, AI-assisted development workflows
|
||||
|
||||
**Languages (Spoken):** Vietnamese (Native), English (TOEIC 600+)
|
||||
|
||||
+26
-19
@@ -63,37 +63,44 @@
|
||||
<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. Focused on scalable game server architecture in Java (Netty, Vert.x), with cross-functional contributions to client-side logic in Cocos2d-x and Godot.</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>
|
||||
<ul>
|
||||
<li>
|
||||
<p><a href="https://play.google.com/store/apps/details?id=vn.zps.tl2">Chaos Age 2</a>: Sole server developer; architected backend from scratch for a global strategy game, 300+ CCU; assisted client team with networking and game logic</p>
|
||||
<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>
|
||||
</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>: Full-stack contributor on two real-time card games for Myanmar and Russian-speaking markets; delivered server-side logic and client features</p>
|
||||
<p>Improved delivery quality with JUnit 5/Mockito tests, load-test clients, Docker-based local dependencies, and multi-environment build/deploy pipelines</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><a href="https://play.google.com/store/apps/details?id=zps.games.bida3d.vn">Bida3D</a>: Implemented matchmaking (server) and cue direction logic (client) for a global 8-ball pool game; applied physics and geometry for accurate ball trajectory simulation</p>
|
||||
<p>Built internal AI-assisted Claude Code skills/plugin marketplace for ZingPlay game-server development, including typed packet-handler scaffolding and framework guidance</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><a href="https://play.google.com/store/apps/details?id=vn.kvtm.js">Sky Garden</a>: Maintained server stability for a live farm game (~5,000 CCU); resolved production issues and developed new event features</p>
|
||||
<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>
|
||||
</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>
|
||||
</li>
|
||||
</ul>
|
||||
<h1>Projects</h1>
|
||||
<h2><strong><a href="https://github.com/tiennm99/vngeoguessr">VN GeoGuessr</a></strong></h2>
|
||||
<p>Aug 2025</p>
|
||||
<p>Location-guessing game for Vietnam using Leaflet.js, Mapillary, and OpenStreetMap with street-level panoramic imagery and map-based scoring.</p>
|
||||
<h2><strong><a href="https://github.com/tiennm99/store-scraper-bot">Store Scraper Bot</a></strong></h2>
|
||||
<p>Nov 2025 – Dec 2025</p>
|
||||
<p>Telegram bot that automates scraping and reporting of app metadata from mobile app stores.</p>
|
||||
<h2><strong><a href="https://github.com/tiennm99">Pet Projects & Open Source</a></strong></h2>
|
||||
<p>2018 – present</p>
|
||||
<p>Various personal projects spanning game servers, bots, and web tools. Occasionally contribute to open-source projects. Full portfolio on GitHub.</p>
|
||||
<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>2026</p>
|
||||
<p>Go Telegram bot framework deployed serverlessly on AWS Lambda/SAM with Firestore and Gemini integration.</p>
|
||||
<h1>Skills</h1>
|
||||
<p><strong>Languages:</strong> Java, Go, JavaScript, Shell</p>
|
||||
<p><strong>Frameworks & Libraries:</strong> Netty, Vert.x, Spring Boot, Cocos2d-x, Godot</p>
|
||||
<p><strong>Databases:</strong> Couchbase, Redis, MySQL, ClickHouse</p>
|
||||
<p><strong>Infrastructure & DevOps:</strong> Docker, CI/CD (GitHub Actions/GitLab CI), Git, Linux, OCI</p>
|
||||
<p><strong>Architecture:</strong> Game server architecture, real-time multiplayer systems, event-driven design</p>
|
||||
<p><strong>Languages:</strong> Java, Go, JavaScript/TypeScript, Shell</p>
|
||||
<p><strong>Frameworks & 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 & 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>
|
||||
|
||||
+1253
-972
File diff suppressed because it is too large
Load Diff
+42
-23
@@ -6,7 +6,7 @@
|
||||
name: "Tien Nguyen Minh",
|
||||
title: "Tien Nguyen Minh - CV",
|
||||
footer: context { [#emph[Tien Nguyen Minh -- #str(here().page())\/#str(counter(page).final().first())]] },
|
||||
top-note: [ #emph[Last updated in Mar 2026] ],
|
||||
top-note: [ #emph[Last updated in June 2026] ],
|
||||
locale-catalog-language: "en",
|
||||
text-direction: ltr,
|
||||
page-size: "us-letter",
|
||||
@@ -80,8 +80,8 @@
|
||||
entries-highlights-space-between-bullet-and-text: 0.3em,
|
||||
date: datetime(
|
||||
year: 2026,
|
||||
month: 3,
|
||||
day: 31,
|
||||
month: 6,
|
||||
day: 11,
|
||||
),
|
||||
)
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
[
|
||||
= Tien Nguyen Minh
|
||||
|
||||
#headline([Senior Software Engineer])
|
||||
#headline([Senior Java Software Engineer])
|
||||
|
||||
#connections(
|
||||
[HCMC, Vietnam],
|
||||
@@ -142,15 +142,17 @@
|
||||
|
||||
],
|
||||
main-column-second-row: [
|
||||
#summary[Progressed from Game Programming Fresher to Senior Software Engineer. Focused on scalable game server architecture in Java (Netty, Vert.x), with cross-functional contributions to client-side logic in Cocos2d-x and Godot.]
|
||||
#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.]
|
||||
|
||||
- #link("https://play.google.com/store/apps/details?id=vn.zps.tl2")[Chaos Age 2]: Sole server developer; architected backend from scratch for a global strategy game, 300+ CCU; assisted client team with networking and game logic
|
||||
- #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=zps.games.show")[Show] & #link("https://play.google.com/store/apps/details?id=zps.games.burkozel")[Burkozel]: Full-stack contributor on two real-time card games for Myanmar and Russian-speaking markets; delivered server-side logic and client features
|
||||
- Improved delivery quality with JUnit 5\/Mockito tests, load-test clients, Docker-based local dependencies, and multi-environment build\/deploy pipelines
|
||||
|
||||
- #link("https://play.google.com/store/apps/details?id=zps.games.bida3d.vn")[Bida3D]: Implemented matchmaking (server) and cue direction logic (client) for a global 8-ball pool game; applied physics and geometry for accurate ball trajectory simulation
|
||||
- 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=vn.kvtm.js")[Sky Garden]: Maintained server stability for a live farm game (\~5,000 CCU); resolved production issues and developed new event features
|
||||
- #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=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
|
||||
|
||||
],
|
||||
)
|
||||
@@ -159,59 +161,76 @@
|
||||
|
||||
#regular-entry(
|
||||
[
|
||||
#strong[#link("https://github.com/tiennm99/vngeoguessr")[VN GeoGuessr]]
|
||||
#strong[#link("https://github.com/tiennm99/mitisrv")[MiTiSrv]]
|
||||
|
||||
],
|
||||
[
|
||||
Aug 2025
|
||||
2018 – 2025
|
||||
|
||||
],
|
||||
main-column-second-row: [
|
||||
#summary[Location-guessing game for Vietnam using Leaflet.js, Mapillary, and OpenStreetMap with street-level panoramic imagery and map-based scoring.]
|
||||
#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/store-scraper-bot")[Store Scraper Bot]]
|
||||
#strong[#link("https://github.com/tiennm99/test-sharding")[Test Sharding]]
|
||||
|
||||
],
|
||||
[
|
||||
Nov 2025 – Dec 2025
|
||||
2025
|
||||
|
||||
],
|
||||
main-column-second-row: [
|
||||
#summary[Telegram bot that automates scraping and reporting of app metadata from mobile app stores.]
|
||||
#summary[Java server experiment for sharding with Couchbase replication, Redis replication, and Kafka.]
|
||||
|
||||
],
|
||||
)
|
||||
|
||||
#regular-entry(
|
||||
[
|
||||
#strong[#link("https://github.com/tiennm99")[Pet Projects & Open Source]]
|
||||
#strong[#link("https://github.com/tiennm99/store-scraper-bot")[Store Scraper Bot] \/ #link("https://github.com/tiennm99/store-scraper-bot-java")[Java original]]
|
||||
|
||||
],
|
||||
[
|
||||
2018 – present
|
||||
Nov 2025 – present
|
||||
|
||||
],
|
||||
main-column-second-row: [
|
||||
#summary[Various personal projects spanning game servers, bots, and web tools. Occasionally contribute to open-source projects. Full portfolio on GitHub.]
|
||||
#summary[Telegram bot for tracking Apple App Store and Google Play metadata updates; original Java version later ported to JavaScript.]
|
||||
|
||||
],
|
||||
)
|
||||
|
||||
#regular-entry(
|
||||
[
|
||||
#strong[#link("https://github.com/tiennm99/miti99bot")[Miti99bot]]
|
||||
|
||||
],
|
||||
[
|
||||
2026
|
||||
|
||||
],
|
||||
main-column-second-row: [
|
||||
#summary[Go Telegram bot framework deployed serverlessly on AWS Lambda\/SAM with Firestore and Gemini integration.]
|
||||
|
||||
],
|
||||
)
|
||||
|
||||
== Skills
|
||||
|
||||
#strong[Languages:] Java, Go, JavaScript, Shell
|
||||
#strong[Languages:] Java, Go, JavaScript\/TypeScript, Shell
|
||||
|
||||
#strong[Frameworks & Libraries:] Netty, Vert.x, Spring Boot, Cocos2d-x, Godot
|
||||
#strong[Frameworks & Libraries:] Netty, Vert.x, Spring Boot, JUnit 5, Mockito, Cocos2d-x, Godot
|
||||
|
||||
#strong[Databases:] Couchbase, Redis, MySQL, ClickHouse
|
||||
#strong[Databases:] Couchbase, Redis, MySQL, Kafka, ClickHouse
|
||||
|
||||
#strong[Infrastructure & DevOps:] Docker, CI\/CD (GitHub Actions\/GitLab CI), Git, Linux, OCI
|
||||
#strong[Infrastructure & DevOps:] Docker, GitLab CI, GitHub Actions, Linux, AWS Lambda\/SAM, Cloudflare Workers
|
||||
|
||||
#strong[Architecture:] Game server architecture, real-time multiplayer systems, event-driven design
|
||||
#strong[Architecture:] Object-oriented design, game server architecture, real-time multiplayer systems, event-driven design, clean reusable code
|
||||
|
||||
#strong[Delivery Practices:] Unit testing, code review, production debugging, CI\/CD, AI-assisted development workflows
|
||||
|
||||
#strong[Languages (Spoken):] Vietnamese (Native), English (TOEIC 600+)
|
||||
|
||||
Reference in New Issue
Block a user