mirror of
https://github.com/tiennm99/cv.git
synced 2026-10-11 03:13:18 +00:00
237 lines
8.2 KiB
Typst
237 lines
8.2 KiB
Typst
// Import the rendercv function and all the refactored components
|
||
#import "@preview/rendercv:0.3.0": *
|
||
|
||
// Apply the rendercv template with custom configuration
|
||
#show: rendercv.with(
|
||
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 June 2026] ],
|
||
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-show-footer: false,
|
||
page-show-top-note: true,
|
||
colors-body: rgb(0, 0, 0),
|
||
colors-name: rgb(0, 0, 0),
|
||
colors-headline: rgb(0, 0, 0),
|
||
colors-connections: rgb(0, 0, 0),
|
||
colors-section-titles: rgb(0, 0, 0),
|
||
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-alignment: "justified",
|
||
typography-date-and-location-column-alignment: right,
|
||
typography-font-family-body: "XCharter",
|
||
typography-font-family-name: "XCharter",
|
||
typography-font-family-headline: "XCharter",
|
||
typography-font-family-connections: "XCharter",
|
||
typography-font-family-section-titles: "XCharter",
|
||
typography-font-size-body: 10pt,
|
||
typography-font-size-name: 25pt,
|
||
typography-font-size-headline: 10pt,
|
||
typography-font-size-connections: 10pt,
|
||
typography-font-size-section-titles: 1.2em,
|
||
typography-small-caps-name: false,
|
||
typography-small-caps-headline: false,
|
||
typography-small-caps-connections: false,
|
||
typography-small-caps-section-titles: false,
|
||
typography-bold-name: false,
|
||
typography-bold-headline: false,
|
||
typography-bold-connections: false,
|
||
typography-bold-section-titles: true,
|
||
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-connections-hyperlink: true,
|
||
header-connections-show-icons: false,
|
||
header-connections-display-urls-instead-of-usernames: true,
|
||
header-connections-separator: "|",
|
||
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,
|
||
sections-allow-page-break: true,
|
||
sections-space-between-text-based-entries: 0.15cm,
|
||
sections-space-between-regular-entries: 0.42cm,
|
||
entries-date-and-location-width: 4.15cm,
|
||
entries-side-space: 0cm,
|
||
entries-space-between-columns: 0.1cm,
|
||
entries-allow-page-break: false,
|
||
entries-short-second-row: false,
|
||
entries-degree-width: 1cm,
|
||
entries-summary-space-left: 0cm,
|
||
entries-summary-space-above: 0.08cm,
|
||
entries-highlights-bullet: text(13pt, [•], baseline: -0.6pt) ,
|
||
entries-highlights-nested-bullet: text(13pt, [•], baseline: -0.6pt) ,
|
||
entries-highlights-space-left: 0cm,
|
||
entries-highlights-space-above: 0.08cm,
|
||
entries-highlights-space-between-items: 0.08cm,
|
||
entries-highlights-space-between-bullet-and-text: 0.3em,
|
||
date: datetime(
|
||
year: 2026,
|
||
month: 6,
|
||
day: 11,
|
||
),
|
||
)
|
||
|
||
|
||
#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])
|
||
|
||
#connections(
|
||
[HCMC, Vietnam],
|
||
[#link("mailto:tiennm99@outlook.com", icon: false, if-underline: false, if-color: false)[tiennm99\@outlook.com]],
|
||
[#link("tel:+84-869-156-149", icon: false, if-underline: false, if-color: false)[0869 156 149]],
|
||
[#link("https://miti99.com/", icon: false, if-underline: false, if-color: false)[miti99.com]],
|
||
[#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]],
|
||
)
|
||
]
|
||
)
|
||
|
||
|
||
== Education
|
||
|
||
#education-entry(
|
||
[
|
||
#strong[Ho Chi Minh City University of Technology], B.E. in Computer Science 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(
|
||
[
|
||
#strong[Senior Software Engineer], ZingPlay Game Studios, VNG Corp. -- HCMC, Vietnam
|
||
|
||
],
|
||
[
|
||
July 2020 – present
|
||
|
||
],
|
||
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.]
|
||
|
||
- #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
|
||
|
||
- Improved delivery quality with JUnit 5\/Mockito tests, load-test clients, Docker-based local dependencies, and multi-environment build\/deploy pipelines
|
||
|
||
- 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 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
|
||
|
||
],
|
||
)
|
||
|
||
== 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]]
|
||
|
||
],
|
||
[
|
||
Nov 2025 – present
|
||
|
||
],
|
||
main-column-second-row: [
|
||
#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\/TypeScript, Shell
|
||
|
||
#strong[Frameworks & Libraries:] Netty, Vert.x, Spring Boot, JUnit 5, Mockito, Cocos2d-x, Godot
|
||
|
||
#strong[Databases:] Couchbase, Redis, MySQL, Kafka, ClickHouse
|
||
|
||
#strong[Infrastructure & DevOps:] Docker, GitLab CI, GitHub Actions, Linux, AWS Lambda\/SAM, Cloudflare Workers
|
||
|
||
#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+)
|