mirror of
https://github.com/tiennm99/cv.git
synced 2026-08-03 16:22:40 +00:00
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.
113 lines
7.2 KiB
HTML
113 lines
7.2 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||
<title>
|
||
|
||
</title>
|
||
<link rel="stylesheet"
|
||
href="https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/5.5.1/github-markdown-light.min.css"
|
||
integrity="sha512-Pmhg2i/F7+5+7SsdoUqKeH7UAZoVMYb1sxGOoJ0jWXAEHP0XV2H4CITyK267eHWp2jpj7rtqWNkmEOw1tNyYpg=="
|
||
crossorigin="anonymous" referrerpolicy="no-referrer" />
|
||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.12/dist/katex.min.css" integrity="sha384-PDbUeNCuE6bOPudPOgFyIUEy3UJawJVwr3XlGO90FIuf5qNIoTLSgOJo/dC2ZXV/" crossorigin="anonymous">
|
||
|
||
<!-- The loading of KaTeX is deferred to speed up page rendering -->
|
||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.12/dist/katex.min.js" integrity="sha384-VkqWq8xtm5YQk1BBXczQ8/Sx+DlCzF8cuS43bZwmtVXzRFtyLTqTCdP7MKmKo+KN" crossorigin="anonymous"></script>
|
||
|
||
<!-- To automatically render math in text elements, include the auto-render extension: -->
|
||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.12/dist/contrib/auto-render.min.js" integrity="sha384-hCXGrW6PitJEwbkoStFjeJxv+fSOOQKOPbJxSfM6G5sWZjAyWhXiTIIAmQqnlLlh" crossorigin="anonymous"
|
||
onload="renderMathInElement(document.body, {delimiters: [{ left: '$$', right: '$$', display: false }]});"></script>
|
||
<style>
|
||
.markdown-body {
|
||
box-sizing: border-box;
|
||
min-width: 200px;
|
||
max-width: 980px;
|
||
margin: 0 auto;
|
||
padding: 45px;
|
||
}
|
||
|
||
@media (max-width: 767px) {
|
||
.markdown-body {
|
||
padding: 15px;
|
||
}
|
||
}
|
||
</style>
|
||
</head>
|
||
|
||
<body>
|
||
<article class="markdown-body">
|
||
<h1>Tien Nguyen Minh's CV</h1>
|
||
<ul>
|
||
<li>Phone: +84 869 156 149</li>
|
||
<li>Email: <a href="mailto:tiennm99@outlook.com">tiennm99@outlook.com</a></li>
|
||
<li>Location: HCMC, Vietnam</li>
|
||
<li>Website: <a href="https://miti99.com/">miti99.com</a></li>
|
||
<li>LinkedIn: <a href="https://linkedin.com/in/miti99">miti99</a></li>
|
||
<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 & Libraries:</strong> Netty, Vert.x, Spring Boot, JUnit 5, Mockito, Cocos2d-x, Godot, WebSocket</p>
|
||
<p><strong>Data & Messaging:</strong> Couchbase, Redis, MySQL, Kafka, ClickHouse</p>
|
||
<p><strong>Infrastructure & 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>
|
||
<ul>
|
||
<li>
|
||
<p>GPA: 8.0/10 — Academic Excellence Scholarship; Five Good Student Award</p>
|
||
</li>
|
||
<li>
|
||
<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>
|
||
</article>
|
||
</body>
|
||
|
||
</html> |