Full-stack engineer building operational tools and AI products. I like taking work people repeat every day and turning it into a system — then shipping it, running it, and refining it with real feedback.
- AI product design — Solar Canvas: Designed and built a spec-first AI workflow editor that extracts fields from contracts. It ships an adjustable confidence slider, arithmetic-rule-based review referral (human-in-the-loop) that runs independent of the model's score, an execution-monitoring dashboard, and real-time collaboration via Yjs. A preliminary evaluation (N=20 synthetic contracts, live API) caught 7 of 7 injected document errors. Private repository — happy to share details on request.
- 10x with AI tooling: Introduced Claude Code + SuperClaude + Serena to my team to standardize pre-PR code-impact analysis and review. Documented codebase-specific anti-patterns as shared rules, cutting off repeat occurrences of the same class of bug.
- Operations automation / internal tools: Built an unattended checkout/return system for the Jiphyeonjeon library, extending operating hours from 6 to 24 (weekly checkouts up 30 → 50, +67%). Automated a paper work-schedule that social-welfare-facility staff used to check by printout into a desktop viewer. Shipped a Chrome extension automating an evaluation-application workflow (published on the Chrome Web Store).
- Full-stack collaboration: Developed and operated Jiphyeonjeon, used by 1,000+ people, on an 8-person team — backend (2023–2024) then frontend (2024–2025) in sequence, over two years. Shared stability work such as a raw-query-to-TypeORM migration and an error-handling middleware rollout at conferences and internal talks.
| Project | Description | Tech |
|---|---|---|
|
Solar Canvas
|
An AI workflow editor that extracts parties, dates, amounts, and clauses from contracts. Extraction pipelines are composed on a node-based canvas; an adjustable confidence slider plus arithmetic-rule-based referral (unit price × quantity = total, 10% VAT, business-registration-number checksum) catches wrong answers hiding behind a passing score. Includes an execution-monitoring dashboard and real-time collaboration via Yjs. Preliminary evaluation (N=20 synthetic contracts, live API): 7 of 7 document errors detected, 11 of the implicated fields carried a passing automatic flag.
|
|
|
|
42 Seoul's official library checkout/return/reservation system. On an 8-person team (3 FE / 5 BE), I owned backend (2023–2024) then frontend (2024–2025) in sequence, serving 1,000+ users over two years. Replaced hours tied to librarian staffing (10am–4pm) with a QR + 42 OAuth unattended system running 24 hours (weekly checkouts up 30 → 50, +67%). Iterated continuously on librarian and patron feedback.
|
|
|
|
A CLI pipeline that automatically analyzes badminton match footage. YOLO11-pose estimates player poses, ByteTrack tracks multiple objects, TrackNetV3 detects shuttlecock trajectory, and a Kalman filter smooths the noise. An LLM summarizes the results into a rally-by-rally report.
|
|
|
|
A waste-sorting guide for foreign residents. Built full-stack on Next.js 16 and deployed to Vercel; splits object recognition and instruction generation into a two-stage Claude API pipeline so each stage can be verified independently. Region-specific disposal rules are mapped by geocode, so coverage extends by adding data alone; supports four languages (EN, 中, 日, RU) via next-intl. 1st place (grand prize) among 12 finalist teams at the Vibe Coding Hackathon — built solo in 4 hours.
|
|
|
|
A shared-umbrella service for the 42 Seoul campus. I identified the problem of lost umbrellas myself, pitched it to the Innovation Academy foundation, secured about ₩1M worth of umbrella sponsorship, and built and operated a QR-based unattended checkout/return system on Angular + FastAPI. 1,656 cumulative checkouts over two years of operation.
|
- 42 Benefit — a site collecting benefits available to 42 Seoul students
- seonbi-talk — an MCP server that suggests formal, persuasive KakaoTalk replies for conversations with superiors.
Python - Bluebird Workshift Viewer — automated a paper work-schedule that social-welfare-facility staff used to print and check into a desktop viewer, with chokidar detecting Excel changes and auto-syncing to Google Drive. Built Oct–Dec 2024 and deployed to 32 facility staff (12 releases).
ElectronJavaScript - tiny_render — a software 3D renderer with no GPU dependency.
C++17CMake - HufsLifeAcademy_app — an Android app for an education community.
JavaAndroid - RedKiKi — a Slack bot that manages a daily algorithm-practice study group.
PythonGitHub Actions
- @yeonseong/magic-loading — a loading animation shaped like a fantasy magic circle, generated from input text.
- az-generator — generates Korean dad jokes.
- korean-random-names-generator — generates Korean random nicknames like "똑똑한 호랑이" (clever tiger).
| Project | Contribution | PR |
|---|---|---|
| Added a Korean README — wrote a Korean translation of the project docs and linked it into the language list |
#285 |
|
| Fixed awkward Korean phrasing and typos in the multisampling doc, unified technical terminology |
#208 |
|
| Added a Korean translation of the WebGPU multisampling article |
#207 |
|
|
|
Added an attribute reference to the Mipmaps field in the texture inspector so its tooltip documentation shows up |
#1694 |
Things I've shared with teams.
| Talk | Topic |
|---|---|
| Migrating from raw queries to TypeORM | Incrementally moving a production service's raw SQL to TypeORM |
| Error handling | A consistent backend error-handling strategy |
| DB backups | Designing and operating database backups |
| Inverse CDF sampling | How to sample from a probability distribution |
| CSG and HDR | CSG and HDR rendering in computer graphics |




