Resume · Updated 2026.10

KimGiHong 김기홍

Frontend Engineer Seoul, South Korea devgihonghong@gmail.com

Readability · Efficiency · Optimization · Modern tooling — a frontend engineer who keeps all four on the same scale.


Summary

Since mid-2024 I write almost every line of new products in pair programming with Claude AI agents. My job is to decide what to build, how to design it, and how to keep readability and efficiency intact — and to verify the result. Who typed the code matters less than whether the result is fast, clean, and easy for the next person to read.

I was the first in my company to push for AI-agent adoption, and I ran the in-house Claude workshop that changed how the team works. Migrations and rebuilds that used to collapse mid-flight before AI now reliably reach the finish line — the MeetMate v4 rebuild, completed in one month with no service downtime, is the clearest example.


Experience

2022.10 — Present

Frontend Engineer · Querensys Seoul

I have owned the frontend across six products. The core of my solo work: two years running the NMS-Web frontend on my own; sole frontend ownership of both the web and mobile clients of the MeetMate video-conferencing platform (the mobile app first launched on the stores in 2026.08); and running an academy LMS web app on my own since taking it over in 2026.06. On ClassMate (2023, hand-written) and CBR (a RAG chatbot) I was one member of the team and owned specific areas (permissions, notifications, SSE streaming and more). Since mid-2024 pair programming with Claude AI agents has been my standard way of working, and I was the first to push for AI adoption in the company, running the in-house Claude workshop.

  • Completed the solo frontend rebuild of MeetMate Web v4 — branched into a new React 19 + Feature-Sliced Design SPA in one month, then removed 89,724 lines of v3 legacy code in one sweep. Jenkins builds for 5 tenants, a 1.3MB gzip bundle budget, FSD boundary violations 475 → 0 and 1,943 Vitest cases, all in a single pipeline. (Claude AI agent pair programming)
  • First store launch of the MeetMate mobile app — turned on R8 for the first time to shrink the Android DEX from 22.95MB to 5.60MB (download −30.6%), and cut Hermes bytecode twice, by −22% and −20.6%. Shipped 1.0.0 → 1.0.5 (builds 10 → 29) continuously over five weeks; the rejection we received was resolved by reply, without re-uploading the binary.
  • First to push for AI-agent adoption in the company — the company’s first case of integrating Claude into production code, plus the in-house Claude workshop I ran. Over more than a year of operation, verified that migrations which used to collapse before AI now reliably run to completion.
  • WebRTC quality policy + Mate WS/Jitsi invariant — cut SFU receiving down to the visible page and consolidated quality decisions into a single pure-function module, restoring mobile usability in 50-person meetings. A "one participant = one entry" invariant plus regression tests ended the races caused by split authority.
  • mate3 100-person meeting performance — Map indexes took the hot path from O(n) to O(1) and comparisons from 10,000 to 100, and black screens on page transitions are gone (bidirectional prefetch + a shorter debounce).
  • Ran the NMS-Web (network management system) frontend solo for two years — introduced a multi-layer RBAC system that unifies a per-role permission matrix (8 domains × 6 actions) and four permission levels (NONE/READ/WRITE/ADMIN) into a single prop, and rebuilt data loading around per-widget Suspense and a reusable infinite-query provider. (Backend owned by a separate teammate)
React 19React Native 0.77Next.js 14TypeScriptZustandTanStack Querylib-jitsi-meetViteJenkins

Selected Projects

2026.04 — 2026.05

MeetMate Web v4 — A New SPA Forked from a Legacy RN Monorepo

MeetMate (Web) · Frontend Lead

Without any service downtime, I forked a React 19 SPA out of an RN+Electron monorepo and, as the sole frontend engineer, went from login through 7 batches of host features in one month. In the final stretch I got the regression-guard round to pass, removed 89,724 lines of v3 legacy code in one sweep, and finished with Web v4 as the single target (the backend was handled by a separate teammate).

React 19TypeScriptVite + SWCTurborepoFeature-Sliced DesignZustandTanStack QueryJenkins
2026.02 — 2026.03

An RN Video Grid That Holds Up in 100-Person Meetings

MeetMate (Mobile) · Frontend Engineer

With 50–100 participants joining at once, our RN video conferencing app showed black screens on page transitions and 100+ unnecessary re-renders per minute. I rewrote it starting from the algorithmic complexity of the hot paths and brought it back to a normally usable state.

React Native 0.77Zustand 5lib-jitsi-meetreact-native-webrtcTanStack QueryJest
2025.05 — 2025.10

NMS-Web RBAC Permission System — 8 Resources × 6 Actions Unified Under a Single Prop Set

NMS (Web) · Frontend Engineer

NMS-Web has many roles holding different permissions across 8 domain resources. I applied a layered permission architecture that ties token-holding strategy, permission derivation, UI gates, route guards and menu visibility into one line. A single prop set on one gate component covers all 3 use sites: inline gates, route guards and menus.

Next.js 14 App RouterReact 18TypeScript 5Context API + ref-based stateJWT silent refresh
2026.06.29 — 2026.07.31

LMS ↔ Video Classroom Window Message Bridge — Rebuilt on Identity-Based Trust After an Endlessly Loading Score Report Outage

LMS (Web) · Frontend Engineer

The day after a production outage in which score reports loaded endlessly because of a single domain missing from an allowlist, I rebuilt cross-window postMessage validation from hardcoded domains into three identity-based layers. Adding a new deployment environment no longer requires a code change; the reply target went from a wildcard to the requesting window's origin, and receivers that had no validation were brought under the same policy. I also blocked duplicate answer submissions 0.06 seconds apart with a single-flight guard.

React 18TypeScriptWindow.postMessagejsPDFWebpack
2025.07 — 2025.08

RAG Chatbot SSE Streaming Pipeline + Pending-Latency Architecture Redesigned in 5 Days

CBR · Frontend Engineer (Team · some backend extension)

I solved the RAG chatbot's long time-to-first-token and the loss of responses when users navigated away with 6-stage SSE events plus a global StreamManager that lives outside the route; then, 5 days after the first release, I collapsed state scattered across three axes — Context + Reducer + localStorage — into the React Query cache as a single source, cutting perceived pending latency again. (On the team I owned SSE streaming and state lifetime; on the backend I extended a teammate's code with SSE endpoints and more, working with an AI agent.)

Next.js 15React 19TanStack Query 5FastAPILangChainQdrantServer-Sent Events
2023.08 — 2023.12

Back Office for a SaaS 4-Tier Version × 3-Service Permission Matrix

ClassMate (Web) · Frontend Engineer (Team)

A back office that edits 4 versions (Free · Basic · Premium · Enterprise) × 3 services (Q&A · community · conference) × N capabilities × 4-way creator permissions on a single screen. Owning the admin pages area within the team, I designed and implemented it down to company pagination, search and throttled updates (the backend was handled by a separate teammate).

React 18Redux Toolkitaxiosi18nextTypeScript

Skills

Languages
TypeScript · JavaScript · HTML · CSS · SCSS
Frameworks
React 19 · React Native · Next.js 14 · Astro
State & Data
Zustand · TanStack Query · Jotai · React Hook Form · Zod
Styling
Tailwind CSS · styled-components · Emotion + MUI · SCSS Modules · Vanilla Extract
Realtime / Media
lib-jitsi-meet (WebRTC SFU) · react-native-webrtc · WebSocket · Server-Sent Events · Web Audio API · TFLite WASM · three.js
Build & Tooling
Vite + SWC · Turborepo · pnpm workspaces · Webpack · Biome · Lefthook · Jenkins · R8 · Hermes
Testing
Vitest · Jest · Testing Library · Playwright · Maestro · XCUITest · axe-core
AI / Workflow
Claude AI agent pair programming · AI-orchestrated migrations · Led in-house AI adoption + seminar
Practices
Feature-Sliced Design · Suspense-first · Accessibility (WCAG 2.1/2.5) · Bundle-budget CI guards · Regression-test invariants · App Store / Play launch & review

Education

2020.03 — 2023.02
Gwangju Software Meister High School · Embedded Software

Links