I prefer to lead technology hands-on rather than through management. On an engineering
track, I set design direction and establish team standards.
This page is an English summary. The full Korean resume has the
complete per-project detail.
Core strengths
Built MMO server frameworks from scratch on several projects, covering networking, lock-free concurrency, navigation, server-side physics and virtual-actor distributed servers.
Worked across PC MMORPG, mobile RPG, user-generated metaverse and distributed-server RPG projects.
Solved hard MMO server problems by profiling out CPU, memory, network and database bottlenecks, which multiplied throughput and concurrent users several times over.
Worked hands-on on the client, web, database, tooling, developer infrastructure and CI as well as the server.
Led the adoption of AI developer tooling: an in-house MCP server, agent teams and a local LLM coding stack.
Experience
Panthera Blade & Soul IP idle/growth RPG, distributed server backend
Drove adoption of the Microsoft Orleans grain model and established the distributed architecture as the team standard; migrated transport from gRPC to TCP; introduced sharding-based data distribution.
Built a single-source data pipeline that generates server and client code, CSV and validation from proto definitions with a custom C++ protoc plugin. The team adopted it as its standard workflow.
Built load-testing infrastructure and measured ceilings of 240,000 gRPC requests/sec and 50,000 TPS on EntityFramework; moved all data access to stored procedures with dacpac incremental deployment in CI/CD.
Designed and implemented large content systems, including territory warfare, 3v3 real-time team PvP, wave dungeons, ranking/PvP and open-field real-time synchronization.
Led the AI developer-productivity work: an in-house MCP server that turns natural language into gRPC test sequences, an AI test and code-review agent team, and a local LLM coding stack (llama.cpp) that keeps company code in-house.
Ran 50 million props at full tick in a single space with 2,000 concurrent players building densely, using one lock-free dispatcher actor per space and zero-copy broadcasting.
Cut draw calls from 20,967 to 503 and raised FPS from 16.5 to 47.4 with instanced static meshes and player-local physics chunking.
Built a server-side dynamic voxel navmesh (DotRecast) that recomputes only the affected tiles, and a Godot-based server visualization viewer.
Delegated NPC AI simulation to the nearest client, applying the Roblox network-ownership model to NPCs. Ownership moves to the next nearest client without interruption as players move, and the server keeps only authority and validation.
Built a real-time collaborative editor that synchronizes 1,000+ concurrent cursors in one browser space with conflict-free simultaneous editing.
Designed and prototyped a user-generated script runtime that downloads and runs logic without client patches, with server-authoritative validation against cheating.
Migrated the server from Node.js to a C# dedicated server for 1.5x measured capacity, and measured Lua runtime limits to decide on multi-instance scale-out.
AION2 · AION Mobile MMORPG
NCSOFT · 2016 – 2021
C++ · C# · MSSQL · Unreal Engine 4
Designed and built the entire MMO server framework from scratch (networking, threading, message processing, navigation, server-side physics and field objects) and redesigned it through the language (C++→C#), database and genre changes.
Optimized channel-free dense combat, presented as the NCDP 2019 Grand Prize talk. Combat with 1,000 players in one view produced 13 million packets/sec; network load distribution (3x throughput), cell-based interest-area broadcasting and packet bit-packing (−36% traffic) handled it, and the design then scaled to 2,000 vs 2,000.
Built voxel-based 3D flight navigation computed on the server and the server collision and physics architecture; R&D on large-scale NPC processing and seamless fields.
TRICKSTER M server optimization assignment
NCSOFT · 2020 – 2021 · 3 months
Raised stable concurrent users from 2,000 to 8,000 (4x) as an embedded optimization and technical advisory engineer.
Earlier career (2007 – 2015)
Shipped and operated live commercial services in Korea, Japan, China and Thailand, with hands-on server stabilization, incident response and live patching.
2014–2015
ONE for kakao (mobile action RPG) · Program Team Lead, Core Creative (Unreal Engine 3). Implemented the entire server architecture and network framework; client UI, tooling and in-house dev environment; led the server team.
2013–2014
Trinity Saga · Drift Rush (mobile RPG / racing) · Server Part Lead, Wemade (Orca) (Unity3D). Unified HTTP + TCP C# server framework, payment verification, operations tooling, load testing.
2011–2013
Help Me! series (mobile simulation RPG) · Program Team Lead, Giant Dream (Unity3D). C++ server and Unity client; services in Korea, Japan and China with direct live operation. Continuous employment: the KB Online development team founded this company after securing investment.
2010–2011
Super Dadada (PC casual racing) · Server Team Lead, KB Online (SEED) (Gamebryo). Reviewed and replaced the server framework, publisher billing/security integration, web monitoring tooling. Services in Korea and Thailand.
2007–2010
Wild Planet (PC MMO shooter with server-side physics, now NVIDIA PhysX) · Server Engineer, Actoz Soft (From9) (Gamebryo). Large-scale multiplayer systems (party, clan war, siege, battlegrounds) on both server and client; DB tuning, auto-patch system, GM tools.
Personal projects
Experiments in how far each domain can be pushed using AI and models as tools.
Game Lag White Paperpublic encyclopedia of 228 online game lag causes across 13 layers, from client to database (12 languages)
HTML · JavaScript · Python · MIT
Each of the 228 causes lists symptoms, graph shape, how to confirm it (where to look, what confirms or rules it out), the owning team (game dev, infra, external) with per-team actions, and authoritative sources (630 source URLs from 83 publishers), so an incident log can be matched to candidate causes.
Includes 28 interactive experiments that reproduce symptoms such as stutter, teleporting and rubber-banding under changing network, server and client conditions, a triage helper that ranks causes by who is affected, when, and what the graph looks like, and 12 public postmortems with step-by-step playbooks.
Written in Korean with 11 translations, static per-cause pages, llms.txt and structured data for search engines and AI assistants. It ships as a single self-contained HTML file.
Hellfarm hack-and-slash action game (Windows / Android)
Godot · C# · private
Wrote a node-free, GC-free data-oriented engine that keeps every entity in struct-of-arrays flat arrays, issues one MultiMesh draw call per system and uses a custom spatial hash instead of a physics engine. It runs 128 million entities concurrently with max-level skill combat (192 million verified for spawn, simulation and rendering).
Made the dense-horde O(n²) neighbor check 38x faster, from 2,500 ms to 38 ms per frame, with neighbor-check hard bounds, off-screen LOD time-slicing, staggered grid rebuilds and lock-free parallelism. A SIMD prepass gave no measurable gain and was dropped, which established memory bandwidth as the bottleneck.
Shader instancing via per-instance data; movement/separation parallelized under Parallel.ForEach with side effects drained through Interlocked queues; spatial grid rebuild fused into the parallel movement pass to remove the last serial O(n) stage.
ZeroLlama agentic coding client for local models (VS Code extension)
TypeScript · llama.cpp · private
Picks a model and quantization that fit the available GPU and VRAM and sets KV cache size, GPU layer count and context size automatically. Offloading MoE experts to CPU RAM lets a 35B-class model (~3B active) run on 8 GB of VRAM.
Redesigned the tooling for quantized models: a system prompt one eighth of the usual size, edit blocks matched nine ways so edits still apply when whitespace drifts, and lint errors fed back to the model after each edit. 35 modules, 27,515 lines of code.
Memory that does not depend on tool calls, and a design that fits all input into a small context (log summarization, importance-ranked repository context, conversation compaction).
ondevice-imagenon-device image generation from weather, place and time
Kotlin · ONNX Runtime
Implemented the Stable Diffusion inference pipeline natively for Android. The CLIP tokenizer, Karras sigma schedule and Euler step were ported to Kotlin and checked against the reference implementation; the UNet loop and VAE decode run on ONNX Runtime.
one-scroll-biblethe Bible's redemptive history as one scroll, in 200+ languages
Single-file HTML app plus a build pipeline that prerenders per-language static pages, with full SEO (JSON-LD, hreflang, sitemap) and a PWA service worker.
thesaurosbuy-timing analysis and alerting for Korean and US equities
Python · Next.js · Supabase · in production
Runs collection, analysis, backtesting and alerting in production on Vercel and Supabase, with eight cron jobs and CI.