Senior product and full-stack engineer for browser automation, AI integration, and production release work — open to full-time roles and focused projects.

Electron desktop sourcing workspace for a Korea→US seller. An embedded browser turns supplier pages into structured local product records, then connects that data to an operations board and Claude Code through MCP.

A production-hardening project for a creator and YouTube reporting SaaS. Before exposing customer traffic, I tied PostgreSQL workers, Docker runtime, backup/recovery, Playwright QA, and fail-closed operator preflight into one release contract.

A production pipeline that turns subjects whose engineering setbacks and fixes survive in the record into English-language YouTube Shorts. Every video and voice asset comes out of my local generation factory (studios); this repo never copies an asset, referencing them by id only, and owns just the state — what stage an episode is at, and what was rejected and why. Seven stages run from candidate to published, each behind a gate. Fact-checking is not done until there are two or more sources, a check table with a row per narration sentence, and a written list of the numbers I decided not to use; an episode reaches review only after clearing a three-second average cut length and -14 LUFS; and production approval is the one step never automated — a human presses it. Assembly, cuts, overlays, subtitles, grading, sound effects and upload are chained through Node tooling, and after publishing the YouTube Data API snapshots performance so the next episode is designed on evidence. The first measurement is recorded as it came: 98.8% of views arrived from the Shorts feed against 0.4% from search, and — a negative result kept rather than buried — the episode that won on views actually lost more viewers in its opening seconds. It started on r/todayilearned material, then redefined what qualifies once it was clear the fixed four acts (subject, setback, reframe, birth) only hold when the subject itself contains a setback and a fix.

A RAG system that verifies every citation against the retrieved chunks before it ever reaches the screen, and answers the question of retrieval quality by measuring it rather than asserting it. The corpus is ~3,000 pages of the PostgreSQL 17 manual — full of passages that look nearly identical (pg_dump vs pg_dumpall, five different work_mem settings), exactly where naive vector search quietly returns the wrong paragraph. Across 46 evaluation questions, cross-encoder reranking scores recall@5 0.978 and MRR@10 0.834 against 0.652 for plain vector search, with citation validity at 1.000 and zero hallucinated citations out of 168. Embeddings and reranking run locally through ONNX, so ingestion makes no outbound calls at all.