Career Description
Hi, I’m Seungha Lee — a backend engineer who enjoys nothing more than the time spent solving problems.
Seven years in software and engineering — Java backend (2 years) → AI/GPU infrastructure R&D (about 2 years) → Go backend (3 years).
In my current role I work on payments, notifications, transaction history and data pipelines, mainly designing for data consistency in distributed systems (pre-emption, idempotency, recovery), and I also handle CI/CD, Kubernetes manifests, the gateway and DB DDL for my services. I design the failure path first and turn review feedback into written team principles. I’m applying for both backend and DevOps roles.
Skills
2: Used in operations
3: Can design & run in production
- 3Go
- 3Java (Spring)
- 3SQL
- 2Python
- 2Shell
- 3gRPC
- 3HTTP / REST
- 3SSE
- 3Kafka
- 2Envoy
- 2Debezium (CDC)
- 2Watermill
- 3PostgreSQL
- 3Redis
- 2MongoDB
- 2DocumentDB
- 2Snowflake
- 3Docker
- 3Kubernetes (EKS)
- 3Helm
- 3GitLab CI
- 2ArgoCD
- 2Rundeck
- 2Ansible
- 3Datadog
- 2Jaeger
- 2OpenSearch
- 2Prometheus·Grafana
- 2Vertex AI (LLM)
- 1Omniverse·IsaacSim
Work Experience
NEXON UNIVERSE — MapleStory Universe
NEXON UNIVERSE (founded 2022, a Nexon affiliate) builds MapleStory Universe (MSU), a Web3 platform that brings blockchain to the MapleStory IP. I developed its backend on the platform development team.
I started on the on-chain/off-chain synchronization layer and went on to work on transaction history, bookmarks, the marketplace BFF, account/payment, unified notifications, a policy service, a CDC data pipeline and an operations AI bot.
Nov 2023 – Nov 2026
built and operated
built new · joined early
dev · test · qa · stage · live
Go gRPC Kafka PostgreSQL Redis MongoDB Snowflake AWS EKS Helm Vertex AI
My core role: keeping data consistent in distributed systems — preemption · idempotency · CDC.
Portfolio (KR) — problem · approach · result → Design Decisions (KR) →
What I did
1 On-chain / off-chain synchronization (Data Engine)
Main work Nov 2023 – Apr 2024
GoSagaRedis distributed lockHelm
- Added input validation, request/response conversion with unit tests, and gRPC error handling while wiring a new core service into the game-facing gRPC service (business-provider)
- Added currency/character validators for the Saga v2 migration and reworked NFT item validation from per-item state lookups to a single list query
- Fixed nickname duplication at character mint: dropped the existence check, preempted with a Redis lock, released only on successful mint — a small fix, but a pattern I kept reusing
- Ran Helm rollouts for new services, reproduced an incident with throwaway deploys and rollbacks, and deployed to dev first before test/qa promotion
2 Transaction history · bookmarks · marketplace BFF
Main work Jun 2024 – Sep 2025 · maintained afterwards
gRPCKafkaPostgreSQL advisory lockRedis NXCDCSnowflake
- High-volume transaction ledger (api-activity)
- Reorganized layers, generalized the consumer and moved to message format v2, then extended it to trades, mints, transfers, Swap & Warp, bridge-in and USDT
- Promoted the transaction hash to a unique key and routed malformed events to a DLQ
- Protected concurrent ingestion with Redis NX + PostgreSQL advisory locks
- Query performance — OR → UNION ALL rewrite with the DBA, cursor-based infinite scroll, a conditional-caching option added to the shared cache decorator
- Emitted notification events when a transaction result is finalized; moved Snowflake ingestion from Kafka publishes to CDC, removing the publish-failure loss path
- Bookmark / view-count service (api-bookmark) — core features: idempotent writes, Redis counters moved to Kafka-driven aggregation, daily/total limits, account-deletion hook
- Marketplace web BFF — moved bookmark/activity calls to the new services, implemented bookmark and on-sale listings in the inventory service, parallelized rendering. Traced intermittent pod restarts to gRPC calls inside async loops holding resources and fixed them with timeouts and chunked calls
- Swap & Warp cross-chain transfer history and queries (incl. bff-swapnwarp)
- Added bookmark-event ingestion to a Java/Spring Kafka consumer; fixed bugs in the marketplace BFF and game-data service before launch
3 Account · payment · unified notifications
Main work Jul 2025 – Aug 2026
WorldpayRedis LuaSSEgRPC streamingMongoDB
- Worldpay (FraudSight 3DS) card verification & re-verification
- Mapped vendor 4xx to 200 + outcome codes and 5xx to errors
- Made the daily attempt counter atomic with a Redis Lua script
- Encrypted part of the card data and added blocking of abnormal attempts per payment-method combination
- Added a re-verification path that confirms identity by card when OTP is reset
- Stablecoin (USDT) launch — extended the off-chain pre-deduction/rollback service for USDT (per-token limit tables, pre-deduction and row locking generalized per token), replaced the rollback topic with a dependency on transaction result topics, and added wallet-address validation to the blockchain supporter and BFF
- Unified notifications (SSE) — absorbed JWT verification to drop the account-service dependency, generated URLs server-side, and split bulk recipients into a gRPC streaming RPC (500-row chunks, 50,000 cap)
- Full-user data migration batch for the KYC vendor change (Argos → Sumsub) — range-partitioned parallel runs, resumable cursor, call-quota management; completed in production
- Discord auto-badge and role-sync batch; extended the community-notice crawler with new boards and resumable failures
- 24-hour lock on security-option changes after an e-mail change — moved from Redis TTL to a persisted column, with primary reads to close the replication-lag window
4 Policy service · data pipeline · ops automation
Main work Jan 2026 – Nov 2026
DebeziumSnowflake Stream/TaskVertex AIOpenSearch
- Policy service (api-sentinel) — ACL (wallet/IP allow & deny lists), rate limiting (sliding + fixed window with jitter), lockout after repeated OTP failures (keep/reset failure counts by configurable policy), runtime feature flags
- PostgreSQL CDC → Snowflake — Debezium connectors, Stream/Task, a replication-slot keepalive job, conditional tasks to cut cost
- Error-triage bot — replies in-thread to Slack error alerts with an LLM first-pass analysis (GitLab commit diffing, OpenSearch history, escalation); handled a vendor model deprecation with model swap, retry/backoff and a semaphore
5 Infrastructure · CI/CD · gateway
Throughout
GitLab CIDockerHelm · EKSRundeckEnvoy
- CI/CD & infrastructure — operated GitLab CI, Dockerfiles, Helm/K8s manifests and DDL for the services I owned; new services shipped with their full deployment set
- Envoy gateway — added and tidied gRPC → REST routes and auth settings whenever services were added; moved routing/port settings of my services (notifications, blockchain supporter) as part of the team-wide gateway gRPC → HTTP switch
- Reviewed all externally exposed APIs (Swap & Warp, notifications, BFF) and added authentication (team of three)
- Led the split of the company-wide proto repository into domain modules
6 Back office · operations tools · other
Mar 2025 – Oct 2026
- Back-office item/token sanctions (single, batch, bulk) and a sanction-history view
- Operations console — Discord message re-send, permission-domain split, wallet ↔ SNS lookups
- Item-probability disclosure service: data storage and versioning
Tech Stack
Language · Go · Java (Spring)
Communication · gRPC (unary / streaming, buf) · HTTP · Envoy · SSE
Data · PostgreSQL · MongoDB · AWS DocumentDB · Redis · Snowflake
Messaging · Kafka (Watermill · Debezium Connect · Spring Kafka)
Infra / DevOps · AWS EKS · Kubernetes · Docker · Helm · ArgoCD · Rundeck · Jenkins · GitLab CI · Envoy
Observability · Datadog · Jaeger · OpenSearch
AI · Vertex AI (LLM)
UCLICK — AI Engineering R&D
- NVIDIA Omniverse R&D (Jun 2022 – Oct 2023) — robot assembly and simulation in IsaacSim with ROS messaging (Python); VR device integration in CreateXR with an UnrealEngine4 single-player sample (C++)
- GC-GPU solution incident diagnosis (Apr – May 2022) — kernel-panic log analysis and root-cause fixes at the environment and source level
- NVIDIA GPU MIG support (Mar – Apr 2022) — on-site MIG enablement for a Korean financial client’s dev/prod servers; shell script that recreates MIG profiles after reboot
- GPU monitoring with NVIDIA deepops (Jan – Feb 2022, sole owner) — Prometheus/Grafana via Ansible; repackaged as scripts and images for air-gapped networks
UCLICK — Backend Developer
- UNO-GATEWAY (Sep 2020 – Dec 2021) — dynamic OPEN API platform (validation, transformation, auth, rate limiting, routing); WebSocket + performance view, connectors for 7 databases and Elasticsearch/Hazelcast/Redis, Ribbon load-balancing tests, packaging
- UNO-GATEWAY MDB project for a Korean securities client (Sep – Oct 2021, sole owner) — JSON ↔ fixed-format message conversion over TCP
- UNO-MSP (Feb 2020 – Dec 2021, lead developer) — Oracle Cloud MSP platform across four releases: real-time resource collection, dashboards, billing integrity, OCI alarm/rule sync, Slack/mail alerts, monthly reports, HA agents, Zendesk integration, JDBC DB monitoring
- LISTEN2ME-SURVEY (Sep – Oct 2020) — spreadsheet-to-survey web app; API contract and statistics dashboard data
How I Work
Design
- Failure paths first. Pre-deduction/rollback, DLQ and retries, CDC — I decide how to recover before I implement. Defect fixes are merged separately from the feature, so they survive if the feature is rolled back.
- Locks and idempotency chosen per event type. Requests and results that arrive out of order get look-up-then-create/update under an advisory lock; single-message events get Redis NX; unique keys are the last line of defence underneath.
- Policy as configuration, not code branches. A policy change should change a setting, not a commit — and settings are injected at boot, never read on the request path.
- Services don’t write outward themselves. Analytics and downstream loads flow through CDC, which removes “the app failed to publish” as a loss path altogether.
- Complex code is split behind interfaces to keep coupling low and layer boundaries intact.
Operations
- Deploys, manifests and DDL for my services are my job. GitLab CI → Helm/Kubernetes → Rundeck, a different deploy path per environment, and DDL that goes through DBA review — one person sees it through. New services get wired into the pipeline by me.
- A single request must be traceable end to end. I design the correlation keys first, then verify after each deploy that Datadog, Jaeger and OpenSearch actually follow the request.
- Debugging starts from a hypothesis. Narrow the scope by environment and context, then confirm with logs. Repeated ops work gets automated, and after a recurrence the closing criteria gain a new item.
Collaboration
- Separate “current assumptions” from “needs verification” when working with DBA, data engineering, security, product, front-end and blockchain teams.
- Write down design intent and the reasons behind decisions. Diagrams first, open to a better direction; the Design Decisions page on this site is that record.
- Review feedback becomes team principle. Payment and security features go through a second review round, and rules like “no log-and-swallow on external calls” and “inject config at boot” are documented and carried into the next piece of work.
Other Experiences
Certifications
| Certification | Issuer | Date |
|---|---|---|
| Engineer Information Processing | Ministry of Science and ICT | Aug 2019 |
| SQL Developer (SQLD) | Korea Data Agency | Sep 2019 |
| Information Security Engineer | Ministry of Science and ICT | May 2023 |
| Linux Master Level 1 | KAIT | May 2021 |
| Network Administrator Level 1 | ICQA | May 2023 |
| Linux Master Level 2 | KAIT | Jul 2020 |
| Network Administrator Level 2 | ICQA | Jul 2020 |
Korea National Open University — Computer Science
Enrolled to ground my engineering in computer science fundamentals and took major courses only — operating systems, compilers, data structures, algorithms, databases, C/C++/Java, security and cloud computing — with A+ in each of these courses.
Korea Polytechnic — Data Convergence Software
Hands-on Java/Spring, Python, R, Linux and database training, including TensorFlow regression, large-scale customer SQL analysis with Oracle, and JSP/Open-API web apps.
Ewha Womans University — Mathematics Education
Mathematics major (calculus, linear algebra, geometry, probability and statistics, analysis, topology, number theory, abstract algebra) — trained to solve problems through definitions and proofs.