Read mode

Chungheon Lee

Product Engineer

I think through and build the whole journey of a product in use together with my team, from the homepage users first meet to sign-up, payment, and the product screens.

github.com/lodado
bblog-theta.vercel.app/about
ycp998@naver.com

Summary

•
Frontend engineer with 5 years of experience. I applied SEO/GEO to the company homepage and grew daily visitors 44% year over year, and I lead a Next.js-based global AI SaaS and B2B product. I proposed and built a design system from 0 → 1, and I own product development end to end, from architecture and payments to test/QA automation.
•
I cut the bundle from 2.2 MB to 700 KB and LCP from 2.6s to 1.0s (Lighthouse Performance 77 → 93). Once metrics and requirements are defined, I prefer to write user-flow-based tests first (TDD) and build from there.
•
When working with AI, I built a harness (frontend-oracle-design) that models ambiguous natural-language requirements with formal logic and automata, then verifies them with boundary-value analysis and property-based testing (fast-check).
•
I dig deep into React internals and designed a Notion-style editor and Server-Driven UI, both open source — the resume you are reading is rendered by that editor.

Skills

Next.js · React · TypeScript · Google Analytics · PostHog · Paddle.js · Playwright · Vitest · Storybook · Zustand · TanStack Query · GitHub Actions · Turborepo · Vercel · Sentry

Work Experience

2026.02 — Present

Seoul · On-site

Frontend Web Developer

Korea Deep Learning Inc. · Full-time

At an AI OCR/VLM startup that raised a Series A of KRW 12B and posted first-half revenue of KRW 3B (about 3.4x the previous year), I own the frontend of the company homepage and the SaaS/B2B product.

Homepage migration from Framer & SEO/GEO

The existing Framer-built homepage had problems with multilingual handling and maintenance.

•
Moved the homepage from Framer to a custom-built site. Improved canonical tags, JSON-LD (structured data), and the Korean/English/Japanese multilingual structure so that search engines and AI search such as ChatGPT (GEO) can find it
•
→ Daily visitors +44% year over year; 27% of lead inquiries (the key conversion goal) arriving via search came from AI (GEO)

Vibe-coding collaboration with non-developers

•
Built a collaboration process in which planners and designers edit code directly with AI. Changes land only after passing lint, automated tests, the harness, and review
•
Built a harness orchestration tool that summarizes requests tagged in Slack threads and Jira with an LLM, sorts each into the right repository as request, cause, and improvement plan, and implements them
◦
Once approved, it connects automatically to implementation, Visual QA, and a PR in an Orca worktree
•
Built a QA tool that lets an AI agent execute and adjudicate Playwright test specs, and adopted it internally

Performance optimization

•
Moved the initial screen to SSR, parallelized data requests, applied code splitting and vendor-chunk separation, and adopted a Pretendard subset
•
→ Results: first screen (LCP) 2.6s → 1.0s, initial JavaScript 2.2 MB → 700 KB, Lighthouse Performance 77 → 93

Product interface & architecture

OCR output was shaped differently for every document type, so the screen could not be fixed up front.

•
Chose Server-Driven UI, where the screen is drawn from a layout sent by the server, so the same code renders any document structure. Data it cannot handle falls back for just that part
•
Features differ by user, plan, and permission, so I built a multi-tenant structure. Instead of conditionals in every screen, it is managed with server-driven UI, so a permission change only needs a JSON edit. The server makes the final access decision
•
Re-render only the blocks that changed when editing a large document, optimizing re-rendering of recursive tree data

Global payments

•
Integrated global payments with Paddle.js. The server makes the final authorization decision and the client only renders state, with subscription-state access control designed as a State Pattern
•
Webhook lag is a waiting state, not a failure. A Confirming payment UI with polling-based sync shows users where they stand
•
Boundary-value-analysis-based E2E tests 400+ and unit tests 400+ on core flows such as payments and document editing, then refactored. Completed a large structural change in one to two days

Next.js · React · TypeScript · Zustand · TanStack Query · Playwright · Vitest · Storybook · Paddle.js · Vercel · Sentry


2022.10 — 2026.01

3 yrs 4 mos

Seongnam · On-site

Frontend Web Developer

Tmax Data · Full-time

Designed and built the frontend architecture of an in-house design system used across product teams and a DB monitoring platform. Starting with legacy improvements and product features, I led the design-system architecture and release infrastructure from my third year at the company.

In-house design system (proposed & led, 0 → 1)

•
Proposed the design system on the evidence of per-product UI fragmentation and duplicate build cost, then led everything from architecture to component development and release setup
•
Agreed a semantic-token system with 3–6 designers and shipped packages to 2–4 product teams — a shared base that let multiple products follow the same UI rules
•
Since several product teams consumed the package at once, a bad release would ripple widely, so I shipped changes incrementally and provided codemods and migration guides so breaking-change cost never fell on product teams
•
Left areas where accessibility (WAI-ARIA) is expensive to build to Radix UI instead of building them myself, and set up Storybook documentation along with test and release automation
•
Identified large result screens as the real usage bottleneck and designed a shared headless Table library with virtualized rendering. Renders 500K rows in 3.8s, on par with open-source grids such as TUI Grid (benchmarked on the same dataset) while following the design system's own tokens and component API

SysMasterDB 8 frontend

Owned frontend development and structural improvements of a Grafana-like DB monitoring platform.

→ Screenshots of the running product: SysMaster DB 8 (Notion)

•
Redesigned module boundaries that eroded as features accumulated, using Feature-Sliced Design to make the dependency direction explicit
•
Migrated legacy JavaScript to TypeScript and the in-house design system for type safety and UI consistency
•
Because every user watches different metrics and the screen could not be fixed, I designed a drag-and-drop Server-Driven UI dashboard. Layout is managed as server data

React · TypeScript · Storybook · Turborepo · Vite · Rollup · Jest · React Testing Library · GitLab CI/CD

Side Projects

shareds — Harness for AI Coding Agents

•
To stop AI from quietly deciding ambiguous policy and reporting only “tests pass,” I built Claude Code and Codex skills (frontend-oracle-design). For behavior that is costly to get wrong, such as payments and permissions, a human approves the requirements and locks them in a file, then the agent must follow the order: failing tests, implementation, independent review
•
It first turns ambiguous natural-language requirements into a mathematical model (formal logic and automata) to check that no case is missing. Then it builds tests around boundary values and runs property-based tests (fast-check) that generate many inputs automatically, confirming the real code behaves as the model says
•
I also built harness-team, which splits each task into planning, implementation, verification, and final-review roles and fixes the previous mistakes first, along with a lint preset

Simmey (Web Service)

•
Built and ran a personal web service; with no ads and organic SEO traffic it reached 900 MAU in Aug 2025 with 95%+ overseas users

Wrath of Cluck (3D Web Game)

•
Built and ran a 3D survival game with Three.js that runs right in the browser. Game rules are separated into an ECS (Miniplex) and the system execution order is set in one place, so the same seed and inputs always produce the same result
•
The view (Three.js) only reads state and draws it, while the ECS owns the rules. I turned human-approved invariants into a formal model and compare it by test against the real game logic to check both give the same results

Education

2021 Completed Naver Boostcamp (Challenge & Membership), 6th cohort

2022.02 B.S. in Software Engineering, Chonnam National University (major GPA 4.09/4.5, overall 3.96/4.5)