Kiyoung So

I build products 0→1, solo
hardware → WASM → cloud.

Full-Stack & AI Engineer · 11 years. Multi-agent platforms, full-stack products, and real-time CV/ML — I own every layer, from the metal to the cloud. The demo below is the hardest layer, proving it.

Live — runs in your browser

Most people think they read in smooth lines. In fact your eyes move in quick jumps — saccades — pausing only at brief fixations a few times a second, and you are effectively blind in between. What feels like a continuous sentence is stitched together from a handful of sharp glimpses. This demo just recorded where yours landed, and in what order. Watch your own reading path replay.

Webcam eye-tracking, compiled to WebAssembly. Read the passage for 12 seconds and watch your gaze path replay — no install, nothing uploaded.
~58 fps (~17 ms/frame) MediaPipe + TFLite → C/WASM SharedArrayBuffer zero-copy 6-DOF head pose · 1€ filter · I-VT/I-DT

Also running in production for real clients: commercial eye-tracking platform ↗

Selected work — all solo-shipped

R_workstation — multi-agent dev platform (AI / agents)

solo · daily driver for 3 devs · local-first
  • Spawn & orchestrate local multi-agent (Claude Code) sessions from a phone
  • Hono + socket.io + SQLite backend · React PWA
  • TOTP auth · Tailscale Funnel · child-process lifecycle management
Local-first: zero data leaves the machine.

Commercial eye-tracking analytics platform (full-stack + infra)

end-to-end owner · led a 4-person team · built the core myself
  • Hardware→browser bridge: Tobii C++ SDK → Node native addon → Electron → WebSocket → React
  • HTML5 Canvas gaze analytics (replay, heatmaps, fixations, scanpath, AOI) + behavioral-scoring ML
  • Full AWS infra: CI/CD, Redis, OAuth, monitoring, zero-downtime deploys
Led the team while architecting and building the core end-to-end.

Browser webcam gaze tracking (CR_wasm · the depth)

solo · ~58 fps in-browser · live in the demo above
  • Ported MediaPipe + TFLite to C/WASM (Emscripten + Bazel, XNNPACK SIMD) with a SharedArrayBuffer zero-copy frame path
  • 6-DOF head pose via solvePnP, 1€ filter smoothing, I-VT / I-DT fixation detection
  • HMAC + ECDSA licensing · S3 / CloudFront distribution
Owned every layer: CV math → WASM build chain → browser runtime → cloud.

Tobii 5L native integration (hardware → cloud)

solo · full system boundary
  • C++ SDK → Node native addon → Electron, including the full build chain
  • IPC / WebSocket real-time streaming, live visualization, data analysis
  • Cloud sync + licensing
Designed the entire hardware → cloud boundary alone.
How I work

Remote-first and async (based in KST, comfortable with night overlap), location-independent. Open to Founding / Staff Engineer roles and contract / EOR engagements with teams that move on results.

My edge isn't breadth for its own sake — it's breadth that stands on real depth in every layer. If you're building real-time CV/ML, edge/WASM performance, or AI-agent tooling and want someone who can own it from the hardware to the cloud — let's talk.