Files
cv/miti99.yml
T

263 lines
9.0 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
custom_connections:
- fontawesome_icon: "facebook"
placeholder: "fb.com/tiennm99"
url: "https://www.facebook.com/tiennm99/"
sections:
education:
- institution: Ho Chi Minh City University of Technology
area: Computer Science and Engineering
degree: B.E. in Computer Science
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. Builds and maintains Java game backends and production tooling with cross-functional work across server, client, QA, and release workflows.
highlights:
- "[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"
- "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"
- "[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:
- name: "[MiTiSrv](https://github.com/tiennm99/mitisrv)"
start_date: 2018
end_date: 2025
summary: Lightweight Java game server framework using Netty; personal framework for experimenting with reusable multiplayer server architecture.
highlights:
- name: "[Test Sharding](https://github.com/tiennm99/test-sharding)"
date: 2025
summary: Java server experiment for sharding with Couchbase replication, Redis replication, and Kafka.
highlights:
- 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 updates; original Java version later ported to JavaScript.
highlights:
- name: "[Miti99bot](https://github.com/tiennm99/miti99bot)"
date: 2026
summary: Go Telegram bot framework deployed serverlessly on AWS Lambda/SAM with Firestore and Gemini integration.
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: []