AI backend developer — Python, FastAPI, PostgreSQL. I build LLM services that check what the model says instead of trusting it, and decide the shipping bar before I look at the numbers.
Open to AI / backend engineering roles. Seoul-based · native-level English.
filing-digest — reads Korean (DART) and US (SEC) financial filings while keeping exact figures on a structured-data path outside the LLM.
The hard part: the guards are mechanical, not prompt-level — missing or unknown citations reject the entire narrative, anchored financial-number patterns written by the model are blocked, and a 24-case live-API harness is run manually against an ingested corpus while deterministic service tests run in CI.
FastAPI PostgreSQL + pgvector KURE-v1 Upstage Solar Docker Compose
fullcourt — measures what the NBA schedule does to a game (travel, rest, density) and predicts results, backtested to 1985–86. → Live
The hard part: learned fatigue weights edged out my hand-tuned ones, and I still didn't ship them — the bar was written down before the numbers came in. Daily automated data pipeline on GitHub Actions.
Next.js Supabase/PostgreSQL Python ML Playwright Vitest
raintoday — nationwide Korean rain forecast that answers when it rains, not just whether. → Live
The hard part: deciding when to trust its own learning. Twice a day it freezes both the adaptive and the equal-weight blend at every KMA station before the outcome exists, scores them on the identical set, and suspends learning the day adaptive loses.
Next.js PostgreSQL 5 forecast providers Brier scoring
stock-game — paper-trading service for US and Korean equities: multi-currency portfolios, FX, cost basis, S&P 500 / KOSPI benchmarks. → Live
The hard part: the security layer is hand-built and audited — JWT + bcrypt, ownership checks, a sliding-window rate limiter I wrote myself, and two self-run security audits written up as documents. 273 tests on CI.
FastAPI PostgreSQL React GitHub Actions Render + Vercel
Three of these run in production, two on daily automated pipelines. filing-digest runs anywhere Docker Compose does.
glass-table — Korean-first Hold'em trainer for iOS. Pure-Swift poker engine cross-checked against a Python oracle in a release-mode CI gate; zero third-party dependencies.
mammacare — bootcamp team project, 5 people, private team repo. Team lead and repo gatekeeper: owned auth (JWT + Google/Kakao/Naver with multi-provider account linking) and the notification/web-push system, and reviewed and merged 41 teammate PRs. 🏆 2nd place.
↳ allergy-tracker — then I rebuilt that project's allergy domain alone, as an iOS app, to find out what I'd change with no team constraints. Food status is now never stored: it's derived from trial history on every read, so a delayed reaction logged weeks later flips a “safe” food back to red with no cache to invalidate. 209 tests, zero network code.
Daily
SQLAlchemy 2 (async) · Pydantic v2 · pgvector · JWT/OAuth2
LLM work — RAG pipeline design · HNSW retrieval · citation & number guardrails · live-API golden-set evaluation · Azure OpenAI · Upstage Solar
Also shipped with — React · Next.js · Swift/SwiftUI · React Native (Expo) · Supabase · Vercel · Render



