Skip to main content

Nowon Lee

Frontend Engineer

I trace service issues to their causes so users can trust the information they see and keep track of work in progress.

Across TypeScript and React services, I have improved real-time information, long-running tasks, operational dashboards, and authentication, then verified behavior after deployment.

Experience

2025 — Present

AI Factory

Frontend Engineer

For public-sector web services, I improved operational information accuracy, visibility into long-running tasks, responsiveness on data-heavy screens, and release reliability.

Improving dashboard accuracy and transfer efficiency

I corrected missing values, incorrect usage ratios, and omitted time series so operators could rely on the PC status shown in the dashboard. I aligned metric names and labels with actual responses, corrected usage-ratio calculations, and separated time series that shared the same label.

I changed queries to fetch only values after the previous request time, reducing data transferred over 10 minutes from 96.5 MB to 41 KB. I compared the deployed dashboard with actual responses to verify the displayed values.

Verified in productionNext.js, Prometheus, Recharts

Improving wait experience and status accuracy for 5–10 minute document generation

Users can see the current stage and elapsed time during 5–10 minute document generation and decide whether to leave or cancel with the relevant status in view. If they continue, status tracking remains active so they can keep following progress.

The client confirms server status after SSE events, so the UI reflects actual processing even when events arrive during a request or the connection fails. Status checks stayed at 10 or fewer per task, compared with an estimated 100–200 checks at three-second intervals. After deployment, I verified that the server-side generation and cancellation states matched the displayed progress.

For 5–10 minute tasksReact, SSE, Next.js

Eliminating 3–4 second UI freezes and keeping real-time charts continuous

I restored interaction on run-history and detail screens that froze for 3–4 seconds while processing API responses of about 5 MB. I applied a shared approach that moved API requests and transformation into a SharedWorker, then verified after deployment that the freezes were resolved.

I merged historical values loaded after refresh with new streamed values on the same time basis, keeping the chart continuous without duplicates. I recombined split JSON fragments with the next chunk so real-time updates could continue.

Response size and format retainedSharedWorker, REST, Streaming

Validating 70+ key flows with consistent authentication recovery

I made more than 70 key authenticated-user flows repeatably testable before release. This coverage surfaced a mismatch between credentials retained in the browser and an expired server session.

I applied one recovery behavior both before entering protected screens and when authentication failed during use, giving users a consistent response. I handled root-cause analysis and deployment of the shared recovery behavior to the QA environment.

Pre-deployment verificationPlaywright, Authentication, QA

2022 — 2024

Crust Universe / Quarkonix

Frontend Engineer

I improved immediate feedback after user actions, initial load times, and real-time information updates, then documented the loading approach for reuse across frontend projects.

Keeping immediate UI feedback aligned with server values

I used optimistic updates on periodically refreshed screens so user changes appeared immediately while reducing mismatches after refetches and duplicate requests.

Production serviceReact, TypeScript, Optimistic Update

Shortening initial load and sharing a reusable setup

I shortened initial load with Vite configuration and React lazy loading, then documented the setup for reuse across other frontend projects.

Service deliveryVite, React, Lazy Loading

Restoring real-time information updates

I used Chrome DevTools to find and fix intermittent WebSocket disconnections that stopped real-time information from updating.

Production serviceWebSocket, Chrome DevTools

Open Source

v7.13.1

React Router

Fixed optional URL parameters incorrectly matching paths that lacked a `/` separator.

Added regression coverage while preserving existing dot-suffix behavior.

v1.2.0

Outline

Fixed an editor defect that prevented Delete or Backspace from removing the final character before an inline image.

Verified deletion inside and outside tables while preserving regular text deletion.

Independent Work

Background

Dankook University
Applied Computer Engineering
2016 — 2022
Engineer Information Processing
Human Resources Development Service of Korea
2022
TOEIC Speaking
IH
2025

Contact