Files
cv/miti99.yml
T

257 lines
8.9 KiB
YAML
Raw 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.
# yaml-language-server: $schema=https://raw.githubusercontent.com/rendercv/rendercv/refs/tags/v2.8/schema.json
cv:
name: Tien Nguyen Minh
headline: Senior Java Software Engineer
location: HCMC, Vietnam
email: tiennm99@outlook.com
photo: avatar.jpg
phone: (+84) 869 156 149
website: https://miti99.com/
social_networks:
- network: LinkedIn
username: miti99
- network: GitHub
username: tiennm99
- network: Telegram
username: tiennm5
sections:
education:
- institution: Ho Chi Minh City University of Technology
area: Computer Science and Engineering
degree: B.E.
date:
start_date: 2017-09
end_date: 2023-06
location: HCMC, Vietnam
highlights:
- "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:
- company: ZingPlay Game Studios, VNG Corp.
position: Senior Software Engineer
date:
start_date: 2020-07
end_date: present
location: HCMC, Vietnam
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.
highlights:
- "[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"
- "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"
- "[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) / KVTM: Maintained Java server features, web payment fixes, Redis/runtime diagnostics, GM tooling, CI/deploy support, and Godot migration support"
- "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:
- name: "[Store Scraper Bot](https://github.com/tiennm99/store-scraper-bot) / [Java original](https://github.com/tiennm99/store-scraper-bot-java)"
start_date: 2025-11
end_date: present
summary: Telegram bot for tracking Apple App Store and Google Play metadata changes; originally built in Java, then ported to JavaScript.
highlights:
- name: "[Gomoku](https://github.com/tiennm99/gomoku)"
date: 2026
summary: Multiplayer Gomoku game with Go WebSocket backend, protobuf messaging, Docker support, PVP/PVE/spectator modes, and Phaser client.
highlights:
- name: "[Rplace](https://github.com/tiennm99/rplace)"
date: 2026
summary: Collaborative pixel-art canvas using Svelte, Hono, Cloudflare Workers, and Durable Object SQLite.
highlights:
- name: "[DB Keepalive](https://github.com/tiennm99/db-keepalive)"
date: 2026
summary: Pluggable Go daemon for keeping free-tier database clusters active across Redis, Valkey, PostgreSQL, MySQL, MongoDB, and Couchbase.
highlights:
skills:
- label: Languages
details: Java, Go, JavaScript/TypeScript, Shell
- label: Frameworks & Libraries
details: Netty, Vert.x, Spring Boot, JUnit 5, Mockito, Cocos2d-x, Godot
- label: Databases
details: Couchbase, Redis, MySQL, Kafka, ClickHouse
- label: Infrastructure & DevOps
details: Docker, GitLab CI, GitHub Actions, Linux, AWS Lambda/SAM, Cloudflare Workers
- label: Architecture
details: Object-oriented design, game server architecture, real-time multiplayer systems, event-driven design, clean reusable code
- label: Delivery Practices
details: Unit testing, code review, production debugging, CI/CD, AI-assisted development workflows
- label: Languages (Spoken)
details: Vietnamese (Native), English (TOEIC 600+)
design:
theme: engineeringresumes
# page:
# size: us-letter
# top_margin: 0.7in
# bottom_margin: 0.7in
# left_margin: 0.7in
# right_margin: 0.7in
# show_footer: true
# show_top_note: true
# colors:
# body: rgb(0, 0, 0)
# name: rgb(0, 79, 144)
# headline: rgb(0, 79, 144)
# connections: rgb(0, 79, 144)
# section_titles: rgb(0, 79, 144)
# links: rgb(0, 79, 144)
# footer: rgb(128, 128, 128)
# top_note: rgb(128, 128, 128)
# typography:
# line_spacing: 0.6em
# alignment: justified
# date_and_location_column_alignment: right
# font_family:
# body: Source Sans 3
# name: Source Sans 3
# headline: Source Sans 3
# connections: Source Sans 3
# section_titles: Source Sans 3
# font_size:
# body: 10pt
# name: 30pt
# headline: 10pt
# connections: 10pt
# section_titles: 1.4em
# small_caps:
# name: false
# headline: false
# connections: false
# section_titles: false
# bold:
# name: true
# headline: false
# connections: false
# section_titles: true
# links:
# underline: false
# show_external_link_icon: false
# header:
# alignment: center
# photo_width: 3.5cm
# photo_position: left
# photo_space_left: 0.4cm
# photo_space_right: 0.4cm
# space_below_name: 0.7cm
# space_below_headline: 0.7cm
# space_below_connections: 0.7cm
# connections:
# phone_number_format: national
# hyperlink: true
# show_icons: true
# display_urls_instead_of_usernames: false
# separator: ''
# space_between_connections: 0.5cm
# section_titles:
# type: with_partial_line
# line_thickness: 0.5pt
# space_above: 0.5cm
# space_below: 0.3cm
# sections:
# allow_page_break: true
# space_between_regular_entries: 1.2em
# space_between_text_based_entries: 0.3em
# show_time_spans_in:
# - experience
# entries:
# date_and_location_width: 4.15cm
# side_space: 0.2cm
# space_between_columns: 0.1cm
# allow_page_break: false
# short_second_row: true
# summary:
# space_above: 0cm
# space_left: 0cm
# highlights:
# bullet: •
# nested_bullet: •
# space_left: 0.15cm
# space_above: 0cm
# space_between_items: 0cm
# space_between_bullet_and_text: 0.5em
# templates:
# footer: '*NAME -- PAGE_NUMBER/TOTAL_PAGES*'
# top_note: '*LAST_UPDATED CURRENT_DATE*'
# single_date: MONTH_ABBREVIATION YEAR
# date_range: START_DATE – END_DATE
# time_span: HOW_MANY_YEARS YEARS HOW_MANY_MONTHS MONTHS
# one_line_entry:
# main_column: '**LABEL:** DETAILS'
# education_entry:
# main_column: |-
# **INSTITUTION**, AREA
# SUMMARY
# HIGHLIGHTS
# degree_column: '**DEGREE**'
# date_and_location_column: |-
# LOCATION
# DATE
# normal_entry:
# main_column: |-
# **NAME**
# SUMMARY
# HIGHLIGHTS
# date_and_location_column: |-
# LOCATION
# DATE
# experience_entry:
# main_column: |-
# **COMPANY**, POSITION
# SUMMARY
# HIGHLIGHTS
# date_and_location_column: |-
# LOCATION
# DATE
# publication_entry:
# main_column: |-
# **TITLE**
# SUMMARY
# AUTHORS
# URL (JOURNAL)
# date_and_location_column: DATE
locale:
language: english
# last_updated: Last updated in
# month: month
# months: months
# year: year
# years: years
# present: present
# month_abbreviations:
# - Jan
# - Feb
# - Mar
# - Apr
# - May
# - June
# - July
# - Aug
# - Sept
# - Oct
# - Nov
# - Dec
# month_names:
# - January
# - February
# - March
# - April
# - May
# - June
# - July
# - August
# - September
# - October
# - November
# - December
settings:
current_date: "2026-06-11"
render_command:
design:
locale:
typst_path: miti99.typ
pdf_path: miti99.pdf
markdown_path: README.md
html_path: index.html
png_path: miti99.png
dont_generate_markdown: false
dont_generate_html: false
dont_generate_typst: false
dont_generate_pdf: false
dont_generate_png: true
bold_keywords: []