About the work

I work on the parts of a frontend that wobble: behavior that depends on the browser, the small differences a runtime creates, and the seams where code starts to be hard to read again. I would rather write something a future reader can understand than something that ships a week earlier.

Career

  1. Mar 2025 - Present

    EA KoreaFC Online operations tool

    Cut weekly QA reproduction and log requests from 10 to 3 by keeping URL state in sync with the UI.

    • After redesigning the item version-management flow, similar deployment issues dropped to zero.
    • Sole frontend owner of the operations tool: stack selection, QA collaboration, and documentation.
  2. May 2024 - Mar 2025

    NHN InjeincTicketlink

    Built reservation flows for high-traffic events including KBO Opening Day and the Korean Series.

    • Unified JSP-based multilingual pages into a single React + i18next codebase.
    • Blocked non-eligible users from entering booking flows via fan-club-tier and team-policy filtering.
  3. Jul 2023 - May 2024

    PandoraTVCobak, crypto community

    Improved Lighthouse SEO score from 56 to 82 using dynamic meta injection in EJS templates.

    • Developed a hybrid-app WebView flow for community and product purchase journeys.
    • Proposed and implemented @mention support end-to-end, including notification integration.

Merged open-source work

Pull requests to TanStack Query, React Router, and a few others that landed in official releases.

  1. #8641

    TanStack Query Optimized useQueries from O(N²) to O(N)

    Reduced function calls in the 500-query benchmark from 4,500 to 2,000 (about -55%).

  2. #9592

    TanStack Query Fixed persist + memoized combine bug

    Resolved stale UI after page refresh.

  3. #9623

    TanStack Query Fixed CI timeout

    Stabilized a mismatch in the Nx Cloud distributed execution config.

  4. #14286

    React Router Fixed missing middleware skipRevalidation handling

    Prevented unnecessary parent loader re-executions.

  5. #14335

    React Router Handled restricted browser storage environments

    Added safe handling for session save failures in private mode.

  6. #14534

    React Router Fixed fetcher.submit JSON bug

    Added regression tests for SSR environments.

  7. #14336

    React Router Fixed generatePath suffix parameter handling

    Resolved failures generating :id.json paths.

  8. #14467

    React Router Added crossOrigin attribute to <Links />

    Addressed CDN CORS CSS preload issues.

  9. #12865

    React Hook Form Fixed useController type regression

    Resolved the never-lock issue and added type tests.

  10. #3611

    TanStack Router Fixed params.parse notFound() handling

    Changed 500 to 404 behavior and added tests.

What I reach for

React, TypeScript, and Next.js as a base. TanStack Query, React Router, and Zustand for state and routing. Vite, Vitest, Playwright, and ESLint to keep build and tests honest. Node, Fastify, Prisma, and tRPC when I need a backend.