Frontend Engineer
I observe how services behave, trace problems to their causes, and fix them. I want to help make web services easier to use and their information more accurate.
In TypeScript and React services, I have improved real-time updates, progress reporting during document generation, and dashboard accuracy, and resolved authentication issues. I continue to check the user experience after deployment.
2025 — Present
AI Factory
Frontend Engineer
I handled frontend development for public-sector web services. I improved information accuracy, progress updates during document generation, interface responsiveness while processing API responses, and deployment reliability.
Fixing incorrect dashboard values and improving transfer efficiency
I fixed missing and incorrect measurements over time so dashboard users could accurately check server status. I aligned metric names and labels with actual responses and corrected ratio calculations. I also traced why measurements that should stay separate were being combined and updated how they are identified.
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 designed and implemented a Next.js API so the browser would not call Prometheus directly. I compared the deployed dashboard with actual responses to verify the displayed values.
Verified in production/Next.js, Prometheus, Recharts
Improving progress updates and status displays during document generation
I designed the frontend so users could keep track of the current stage and elapsed time during document generation, which takes 5–10 minutes. I added a confirmation step before leaving the page or canceling generation.
After SSE events, the client checks the server status again so the page reflects the actual state even if events arrive out of order or the connection fails. I reduced API requests to check document generation status from 150–200 to 30 or fewer. After deployment, I verified that generation and cancellation states matched the progress shown on the page.
For 5–10 minute tasks/React, SSE, Next.js
Improving responsiveness during large API responses and keeping real-time charts continuous
For API responses of up to 330 MB, I reduced the maximum interval between frame updates from 1,316.6 ms to 16.8 ms. I designed a module that moves API requests, JSON parsing, and display-value conversion into a Web Worker and applied it across multiple pages to keep them responsive while processing responses.
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 retained/Web Worker, REST, Server Sent Event
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 the same recovery behavior before users accessed pages that require login and when authentication failed during use, so users received a consistent response. I handled root-cause analysis and deployed the shared recovery behavior to the QA environment.
Pre-deployment verification/Playwright, Authentication, QA
Packaging the frontend as a library for integration into another app
I configured a Vite library build so a previously standalone frontend could be used in another app. I organized type declarations, CSS, and provider integration to keep the UI and behavior consistent in the host app.
Integration into another app/Vite, TypeScript, React, CSS
2022 — 2024
Crust Universe / Quarkonix
Frontend Engineer
I made pages reflect user requests immediately, reduced the time it took for the first page to appear, and addressed issues that prevented real-time information from being shown. I documented the loading improvements so other projects could use the same approach.
Showing requested changes immediately and accurately
I made the page respond to user requests immediately, without waiting for a server response. I addressed mismatches between information on the page and server values, and reduced the request count by removing duplicate requests.
Production service/React, TypeScript, Optimistic Update
Shortening initial load and sharing a reusable setup
I reduced the time it took for pages to become visible to users. I documented the steps so other frontend projects could apply the same improvements.
Service delivery/Vite, 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 service/WebSocket, Chrome DevTools
v7.13.1
React Router
Fixed optional URL parameters incorrectly matching paths that lacked a `/` separator.
I added tests to check that URLs with a suffix beginning with "." still match as before.
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.
AI Agent Workflow
I created repository rules and skills that separate requirements, research findings, decisions, and plans so AI agents can check the evidence behind implementation and the reasons for changes. I applied them across multiple repositories.
I established a review process to find ambiguous Korean wording and revise it in context before documents are saved. The checker uses Unicode normalization to handle different Hangul representations and can inspect changed files, specified files, and standard input.
2026 — Present/Node.js, Repository Rules, Text Validation
I started this project because I kept re-entering the same AI agent instructions and creating separate command notes for different execution parameters. Users can select the instructions they need from multiple notes, arrange them in order, and copy them together, or reuse a command by changing only values such as input filenames.
I designed data structures that let users change the text and order of items to copy while preserving the original notes. Using the app myself, I improved note and batch-copy reordering and separated copy and edit interactions so users could select and edit the text they need on their phones.
2026 — Present/TypeScript, React, Next.js, IndexedDB
Offline Translation Web App
With language models saved ahead of time, users can translate between Korean and English or Korean and Japanese without a network connection and keep entering text on the page while the model runs.
I used browser caching and IndexedDB to store the files and information needed for translation, and automated deployment with GitHub Actions.
2025/Web Worker, IndexedDB, Offline, GitHub Actions
- Dankook University
- Applied Computer Engineering
- 2016 — 2022
- Engineer Information Processing
- Human Resources Development Service of Korea
- 2022
- TOEIC Speaking
- IH
- 2025