ABOUT ME

박상욱Steve Park

Game Server · Backend Developer. From multi-region live service ops to performance tuning and ops infrastructure — I dig deep until the problem is solved.

Role Game Server · Backend Developer Experience 4 Years Age 32 (Born 1994) Military Military Service Completed
Phone 010-9929-0034 E-mail 1sanguk@naver.com GitHub github.com/1sanguk
🎮
Game Server Dev
Multi-region live ops · performance tuning · real-time chat server from scratch
Performance
DB indexing · Redis caching · ranking queries cut from 10–20s to 1–2s
🔧
Ops · Infrastructure
Admin & ops tool design · data dashboard build · DB migration

Table of Contents

  1. Education & Training
  2. Career
  3. Language / Certifications
  4. Skills
  5. Highlight Projects
  6. Project List

Education & Training

Education
2017.03 – 2022.08
Pusan National UniversityComputer Science & Engineering · Busan · Graduated
2013.09 – 2014.06
Hong Kong Polytechnic UniversityComputer Science · Hong Kong · Attended, Degree Not Completed
2009.09 – 2013.06
International School of QingdaoSecondary School · Qingdao, China · Graduated
Training
2026.05.12 – 2026.11.12
KakaoTech Bootcamp – Generative AI CourseKorea Radio Promotion Association · In Progress
2023.11.29 – 2024.01.17
Game Application Programming CourseSeoul Game Academy Busan · Left the Program Upon Employment

Career (4 Years Total)

202120222023202420252026
UXIS (2021.03 – 2023.08) SKYWALK (2024.01 – 2026.02)
2024.01 – 2026.02
SKYWALK · Server DeveloperGame server content development / maintenance
2023.04 – 2023.08
UXIS · Contract Software DeveloperSW development, server development
2022.01 – 2022.12
UXIS · Contract Software DeveloperSW development, server development
2021.03 – 2021.12
UXIS · Software Developer InternSW development, server development

Language / Certifications

2026.03.25
OPIc IH (English)ACTFL
2024.06
Engineer Information Processing CertificateHuman Resources Development Service of Korea · 24201210507Z

Skills

Backend Languages
JavaJavaScriptC#PHPPythonNode.jsCC++Go
Databases
MySQLGoogle BigQueryRedisMSSQLOraclePostgreSQL
Server / Infrastructure
AWSApacheExpressIISSSLTomcat
Frameworks / Tools
eGovFrameworkGitHubSpring FrameworkSpring BootASP.NET CoreSVNNexacroReact Native
ETC
Looker StudioOKTA SSOPWA

Experience duration includes professional, project, training, and learning experience.

Highlight Projects

Situation Task Action Result
CocoMine SKYWALK · 2024.12 – 2026.02

Cozy Life Simulation SNS · 30K+ Users · Peak CCU: 500–1,000

GoC#ASP.NET CoreMySQLRedis
S
  • Each login API held an individual lock, causing sessions to queue sequentially under load
  • The plaza and village had all users packed into a single channel, causing lag and disconnections
  • Ranking queries hit MySQL directly every time, creating high load under concurrent requests
  • No real-time chat feature existed between users
  • The operations team had to request game data from the dev team every time they needed it
T
  • Login stabilization
  • Plaza/village channel distribution
  • New chat server development
  • Ranking query performance improvement
  • Operations tool design
A
  • Identified that per-API locks in the login flow were serializing every user's requests — narrowed lock scope to per-user so different users' logins run in parallel, and replaced shared state with thread-safe structures such as ConcurrentDictionary to eliminate lock contention entirely. Expanded the DB connection pool and added missing indexes to clear the remaining bottlenecks.
  • Designed a channel distribution system for the plaza and village: a pool of channels (5 by default) where new users are assigned to the least-loaded channel, with per-channel user state isolated so only users in the same channel interact — protected the per-channel user counters against race conditions under concurrent joins using Go's sync.Mutex.
  • Implemented auto scale-out logic that provisions 5 new channels when all channels approach capacity (25 of 30), with gradual, distributed user placement to prevent a thundering herd onto the new channels — the 30-user capacity was validated through blind testing.
  • To resolve the missing chat feature, coordinated specs with the planning team and built a new chat server from design through implementation
  • Used slow query logs to identify ranking queries as the primary DB bottleneck, then migrated to Redis real-time updates and paging + Redis caching to distribute concurrent read load
  • Discussed requirements directly with the operations team to finalize the feature scope, then designed and built the ops tool on ASP.NET Core
R
Login processing time30 sec–3 min10–30 sec
Ranking query time10–20 sec1–2 sec
  • Plaza/village single-channel overcrowding: resolved with least-loaded channel placement + auto scale-out, keeping the service stable without lag or disconnections
Welcome to My Home SKYWALK · 2024.01 – 2026.02

SNG · Lifestyle Simulation · KR/JP/TW/EN 4 Regions · 200K+ Users · CCU: 200–2,000

JavaMySQLBigQueryAWSLooker Studio
S
  • MySQL 5.7 reached end of life in October 2023, ending security patch support → 8.0 migration was unavoidable
  • Payments were failing 4–5 times per day due to network delays, or completing with items never delivered
  • The operations team had to request game data from the dev team every time, slowing decision-making
T
  • MySQL 8.0 migration
  • Payment stabilization
  • Data visualization dashboard for the operations team
A
  • Handled MySQL 5.7→8.0 compatibility and applied indexing/optimization to key queries including item lookups
  • Added automatic retry logic for delayed payment responses
  • Cross-checked previous transaction records before retrying to prevent duplicate grants and safely recover cases where payment succeeded but items were not delivered.
  • Discussed the required metrics directly with the operations team, then built a BigQuery · Looker Studio dashboard for real-time currency and token statistics so the team could access data independently
R
Item lookup time3–10 sec faster
Payment failure rate4–5 / day1 / 1–2 weeks
  • Operations team requests shifted from one-off data pulls to feature-driven analytics requests
  • The team could identify error-prone periods on their own
Chungcheongbuk-do Education Office HR System UXIS · 2021.12 – 2022.07

HR Administration System for Education Office Staff · ~6,400–10,000 Employees

JavaNexacroMySQLeGovFrameworkSpring
S
  • Personnel transfers for ~6,400–10,000 education office employees were handled manually — clerks received submitted documents and calculated scores on paper or in Excel to make transfer decisions
T
  • Implementing the transfer scoring algorithm for automated matching
A
  • Designed a transfer algorithm that scores submitted documents by category and determines priority via top-down sorting
  • Separately implemented tie-breaking logic for edge cases involving equal or overlapping scores — the most challenging part of the feature
R
  • Automated transfer decisions for 6,400–10,000 employees, replacing manual paper and Excel calculations with score-based algorithmic processing

Project List