Files
cv/index.html
tiennm99 f092f49b7f 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.
2026-06-11 21:15:17 +07:00

113 lines
7.2 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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 &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>
<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>