# 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 | Java 21, Real-Time Backends, CI/CD, AI-Assisted Delivery location: HCMC, Vietnam email: tiennm99@outlook.com phone: (+84) 869 156 149 website: https://miti99.com/ social_networks: - network: LinkedIn username: miti99 - network: GitHub username: tiennm99 - network: Telegram username: tiennm5 sections: 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 over 5+ years building and operating production backends for real-time multiplayer games, collaborating daily with client, QA, release, and product stakeholders. highlights: - "[Chaos Age 2](https://play.google.com/store/apps/details?id=vn.zps.tl2): Built and operated gameplay systems, battle synchronization, matchmaking, payments/webpay, admin tooling, automated tests, and delivery pipelines as primary Java backend contributor" - "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" - "Applied OOP and design patterns to reusable packet handlers, gameplay workflows, payment/config modules, and admin tooling for live products" - "[Burkozel](https://play.google.com/store/apps/details?id=zps.games.burkozel), [Show](https://play.google.com/store/apps/details?id=zps.games.show), and [Sky Garden](https://play.google.com/store/apps/details?id=vn.kvtm.js): Diagnosed and fixed live concurrency issues; maintained backend gameplay events, payment/config updates, metrics, and release support" - "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" projects: - name: "[Store Scraper Bot](https://github.com/tiennm99/store-scraper-bot) / [Java original](https://github.com/tiennm99/store-scraper-bot/tree/e794000df38c35d3e1a9aa0545d4573a2298a8a9)" start_date: 2025-11 end_date: present summary: Telegram bot for tracking Apple App Store and Google Play app updates; original Java 21 implementation later ported to Node.js/Vercel. highlights: - "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" - name: "[Gomoku](https://github.com/tiennm99dev/gomoku)" date: 2026 summary: Multiplayer Gomoku game with authoritative Go WebSocket backend, protobuf binary messages, Docker Compose, GitHub Actions CI, and Phaser client. highlights: - "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" - name: "[miti99bot](https://github.com/tiennm99/miti99bot)" start_date: 2026-05 end_date: present summary: Modular Go Telegram bot framework on AWS Lambda (SAM) with pluggable KV storage providers (Firestore/DynamoDB) and AI integration with rate limiting. highlights: - "Covered modules, storage providers, and AI rate limiting with 53 Go test files; GitHub Actions CI plus OIDC-authenticated AWS deploy pipeline" skills: - label: Languages details: Java, Go, JavaScript/TypeScript, Shell - label: Frameworks & Libraries details: Netty, Vert.x, Spring Boot, JUnit 5, Mockito, Cocos2d-x, Godot, WebSocket - label: Data & Messaging details: Couchbase, Redis, MySQL, Kafka, ClickHouse - label: Infrastructure & DevOps details: Docker, GitLab CI, GitHub Actions, Linux, AWS Lambda/SAM, Cloudflare Workers, Vercel - label: Architecture details: OOP and design patterns, reusable components, real-time multiplayer game-server architecture, event-driven design - label: Delivery Practices details: Unit testing, code review, production debugging, continuous integration and delivery (CI/CD), DevOps collaboration, AI-assisted development workflows 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 — multiplayer Battle Royale game server in Java (Netty/WebSocket) with authoritative architecture, FlatBuffers serialization, behavior-tree AI bots, and server-side anti-cheat" design: theme: engineeringresumes page: top_margin: 0.45in bottom_margin: 0.45in left_margin: 0.55in right_margin: 0.55in header: photo_width: 3cm space_below_name: 0.3cm space_below_headline: 0.3cm space_below_connections: 0.3cm section_titles: space_above: 0.3cm space_below: 0.2cm sections: space_between_regular_entries: 0.7em space_between_text_based_entries: 0.2em typography: line_spacing: 0.5em font_size: body: 10pt # 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: []