A4 Resume Preview

Download this resume directly as a PDF file.

Web Resume

CURRICULUM VITAE

Sangmin Lee

A developer who creates business value and reduces team pain points

Email
red9runge@gmail.com
Phone
+821020809652

Summary

Hello, I'm Sangmin Lee. I have developed the product and operational features teams need, with a focus on frontend development.

Across commerce, mobile WebView, insurance, and medical and clinical analysis products, I proposed an app-release-bound event area as an independent WebView product and turned developer-run content operations into tools for operators.

More recently, while building medical and clinical analysis products, I have taken ownership not only of responsive design, accessibility, and performance, but also deployment, log storage, and request tracing.

I use AI development assistants for more than code generation. I established project-specific instructions, skills, hooks, and PR validation standards. I care more about how a technical choice changes the user's and team's next task than about the technology itself.

Experience

7 years 4 months total experience

Oprimed

Service Developer

2026.02 - Present

Medical and Clinical Analysis Products

Medical and Clinical Analysis Screen Development

I work on screens, accessibility and performance improvements, AI development tooling, CI/CD, and backend logging for medical and clinical analysis products.

  • I developed condition setup, job execution, results, and report screens so input and output remained connected throughout long-running analyses. I coordinated responsive breakpoints and error and re-entry behavior that were not in the original plan with product, design, and backend teammates.
  • I introduced accessibility standards that the existing product did not have so key screens could be used with a keyboard, and checked login, service selection, and session-expiration screens with Playwright.
  • To reduce image requests and UI maintenance cost, I replaced image-based UI with shared components. Static images are converted into viewport-specific WebP assets at build time and only changed assets are regenerated and verified, reducing the calculated transfer size of conversion candidates by about 95%. A separate Lighthouse comparison reduced LCP from 1.3 to 1.0 seconds and Speed Index from 3.4 to 0.7 seconds.
  • To visualize analysis results and reduce repeated requests, I developed ECharts and Plotly charts and moved disease lists to a TanStack Query cache, removing direct calls from individual screens.
AI Development Tooling
  • To prevent incorrect interpretation of medical and clinical context, I created an AI workflow in which Codex and Claude reference project-specific instructions, task-specific skills, execution hooks, and PR rules stored in the repositories.
  • I reviewed diffs and typecheck, test, and build results so people could verify AI-generated changes and the team could use the same standards. Teammates could also adapt and use the same instructions and hooks.
Infrastructure and Backend

Tech Stack Next.js, React, TypeScript, Tailwind CSS, Radix UI, TanStack Query, Zustand, React Hook Form, ECharts, Plotly, Vitest, Playwright, axe-core, GitHub Actions, Husky, Docker, Python, Django, Django REST Framework, PostgreSQL, Codex, Claude, MCP

  • To align different project runtime environments, I moved a Vite and React Router-based Portal to Next.js and aligned package versions, the Docker runtime, and deployment method with the other frontend projects.
  • To reduce mistakes from manual deployment and missed changes, I moved Docker deployment to GitHub Actions and ran typecheck, test, and build through Husky. Key screens were checked separately through Playwright scenarios.
  • To separate business data from logs and make error requests easier to find, I added log databases to three backends and stored entries by environment, service, and request ID. I also added log-query APIs and a frontend error-reporting API to Admin.
  • I added health checks so GitHub Actions could inspect actual server state. They check backend HTTP responses and container status and leave an Actions Summary and logs when an issue is detected.

CodeCrayon

Frontend Development

2023.05 - 2025.07 (2 years 3 months)

Commerce and Back Office

Commerce and Back Office

As an early team member, I developed commerce and back-office products, mobile WebView and web games, and content-operations tools.

  • I developed product discovery, ordering, payment, and account features so domestic and international users could use the appropriate language and payment method, supporting Korean, Japanese, English, and Chinese screens.
  • To match how mobile customers and desktop sellers work, I moved customer screens to a mobile-first UI while retaining a desktop layout for the seller dashboard.
  • To keep operations features moving after the previous owner shifted to app development, I migrated the Flutter Web back office to Next.js and moved product, order, settlement, event, and inquiry management features.

WebView and Web Games

WebView and Web Games
  • I proposed a WebView area and demonstrated a prototype so events and games could be added without waiting for an app release. After it was adopted, I developed and operated the frontend project.
  • I developed the Phaser-based Flying Pop as repeat-visit content. When a follow-up game was needed to use accumulated bonuses, I also owned the Open Sesame frontend and connected rankings, result submission, and bonus accrual and spending across both games. Excluding duplicate play, we observed approximately 2,000 to 3,000 weekly unique users in the database.
  • I worked with the app and backend developers to integrate the Flutter bridge and game APIs so the web games could connect to app features and the server. I connected app sharing and navigation with game result submission.
  • I applied Branch share links and Airbridge deep links so users could receive extra play after ad completion and enter games through shared links. I also handled duplicate progression during result submission and Safari audio playback and screen-exit issues exposed in WebView.

AI Use and Operations Tools

AI Use and Operations Tools

Tech Stack Next.js, React, TypeScript, MUI, Tailwind CSS, Jotai, SWR, React Hook Form, Toss Payments, PayPal, Phaser, Flutter InAppWebView, Branch.io, Airbridge, Node.js, Express, AWS Bedrock, OpenAI API, Google Cloud Translation, Axios, Cheerio

  • So operators could translate subtitles without a developer, I turned an AI subtitle translation CLI into a multi-file, multilingual tool and added it to the back office. Three to four operators used it for about three months while I was employed.
  • I built a prototype to test whether AI could produce initial drafts for Sellectors product blog posts.
  • To reduce repeated searches across video platforms, I built a tool that brings results from three platforms into one screen. It reduced the operations team's review time from about 50 minutes to under 10 minutes, while operators retained final judgment on whether content was unauthorized.

all of them Co., Ltd. · Japan

Frontend Developer

2021.07 - 2023.04 (1 year 10 months)

Shared Subscription Entry and Performance Improvement

Shared Subscription Entry and Performance Improvement

Insurance products connecting client entry, subscription, and operations

  • To reuse one insurance subscription modal across multiple client pages, the shared CDN SDK accepts an API key and display options as configuration and separates product-specific screen assets by planId. I handled customer-data transfer and the subscription URL connection within the same flow.
  • A Japanese client reported that a blank screen and loader remained visible for about five seconds on subscription entry. Treating this as a potential pre-subscription drop-off issue, I first grouped initial React data requests with Promise.all and moved customer-data loading into the first screen instead of immediately changing frameworks.
  • Based on remaining performance headroom and low migration cost, I moved the subscription flow I owned into a separate Next.js codebase and assembled initial data through SSR.
  • I measured the migrated build in Korea with Lighthouse's default desktop settings and confirmed an LCP of 1.2 seconds. Rather than treating that as proof for the Japanese environment, I asked a local teammate to revalidate it and deployed after the client reported that actual entry time had dropped to about 1.2 to 1.5 seconds.

Subscription and Operations Systems

Subscription and Operations Systems

Tech Stack React, Next.js, TypeScript, Redux, Context API, Java, Spring Boot, Doma2, MySQL, Redis, GraphQL, DynamoDB, S3, Sass, GitLab CI/CD

  • I owned one subscription flow from occupation-based premium calculation through applicant information, disclosures, card payment, and completion.
  • For separate cancer and hospitalization insurance products, I developed and refined estimates, plans, policyholder and insured-party information, disclosures, payments, and mid-flow save and restore, clearing card data on restoration.
  • I developed insurance-customer search and detail views plus transaction and subscription histories from the React frontend through the Spring backend, and built a module that stores administrator CSV files in S3.
  • For separate policy and agency back offices, I handled branch and agent views, policy, payment, and premium-invoice queries, and file-upload screens.

Datalogics

Operations, Maintenance, and Development

2020.08 - 2021.07 (1 year)

Consular Call Center Maintenance and Smart-DIS ETL Development

Consular Call Center Maintenance and Smart-DIS ETL Development

Tech Stack Java, JavaScript, JSP, eGovFrame, MyBatis, MariaDB, Oracle, Linux, HTML, CSS

  • I operated and maintained the Ministry of Foreign Affairs Consular Call Center application. I developed selected JSP survey screens and an API connected to the database batch server, handled feature improvements and bug fixes, and troubleshot the toll-free calling app.
  • I developed data-migration features for the Smart-DIS data integration and ETL tool and made Oracle queries work with MariaDB.
  • I made Linux-only features available on Windows, replaced online-dependent libraries with alternatives that worked on the intranet, and then wrote the operations manual.

Datalogics

Infrastructure Engineer

2017.08 - 2019.05 (1 year 10 months)

Public-Sector Infrastructure Build and Operations

Public-Sector Infrastructure Build and Operations

Tech Stack Linux, Server, Network, L2/L3, Firewall, IPS, TMS, Backup

  • For operations and maintenance at the Office for Government Policy Coordination, I managed servers in Sejong and Seoul, L2 and L3 network equipment, firewall, IPS, and TMS security appliances, and backups, and handled incident recovery, security-audit responses, and preparation for National Assembly inspections.
  • For the Social Security Information Service advancement project, I handled equipment inspection, rack mounting, and installation testing.
  • For child-protection agency builds and maintenance, I dismantled and reinstalled equipment for a call-center relocation and set up new agencies.

External Activities

Hybrid App and Web Developer Training Program

  • To transition from infrastructure to software development, I studied Java and Spring-based web development, REST APIs, and the fundamentals of Android and iOS app development.

2020.03

Last updated · 2026.07
Sangmin Lee Resume Preview