Portfolio · 2026

Readability · Efficiency · Optimization · Modern tooling — a frontend engineer who keeps all four on the same scale.

MeetMate (Web)
2026.04 — 2026.05 Frontend Lead

MeetMate Web v4 — A New SPA Forked from a Legacy RN Monorepo

Without any service downtime, I forked a React 19 SPA out of an RN+Electron monorepo and, as the sole frontend engineer, went from login through 7 batches of host features in one month. In the final stretch I got the regression-guard round to pass, removed 89,724 lines of v3 legacy code in one sweep, and finished with Web v4 as the single target (the backend was handled by a separate teammate).

  • Migration completed — after passing the regression-guard round (18 WebSocket domains + 5 member-seed cases blocked), I removed 1,233 files / 89,724 lines of v3 legacy code on the same day.
  • 475 → 0 FSD boundary violations. Enforced in both lefthook and CI, so it can't break the same way again.
React 19 TypeScript Vite + SWC Turborepo Feature-Sliced Design Zustand
MeetMate (Web)
2026.04 Frontend Engineer

A Video Grid That Survives 50-Person Meetings

I restored mobile usability in 50-person meetings. I cut SFU reception down to page units, and consolidated quality decisions so that, instead of scattered if statements, they happen only in a single pure-function module that takes dpr, participant count, and connection quality as inputs.

  • Restored mobile usability in 50-person rooms. Blocking SFU forwarding for participants outside the current page cut decoding load from ~50 → ~25 streams.
  • Consolidated the quality policy into a single pure-function module. It takes 3 inputs and returns a resolution bucket, ending the sprawl of if statements.
lib-jitsi-meet VP9 simulcast Zustand Jotai Puppeteer React 19
MeetMate (Mobile)
2026.02 — 2026.03 Frontend Engineer

An RN Video Grid That Holds Up in 100-Person Meetings

With 50–100 participants joining at once, our RN video conferencing app showed black screens on page transitions and 100+ unnecessary re-renders per minute. I rewrote it starting from the algorithmic complexity of the hot paths and brought it back to a normally usable state.

  • Hot-path comparisons on a 100-participant join: 10,000 → 100. Introduced Map indexes to go from O(n) → O(1).
  • Join-storm throughput: 100 individual `addTrack` calls → 1–2 batched calls. Micro-batched so the work finishes within a single frame.
React Native 0.77 Zustand 5 lib-jitsi-meet react-native-webrtc TanStack Query Jest
MeetMate (Mobile)
2026.08.28 — Present Frontend Engineer

From First Store Launch to 1.0.5 — Slimming the App and Handling App Review

I launched MeetMate mobile on the App Store and Google Play for the first time, then shipped continuously for 5 weeks, from 1.0.0 (build 10) to 1.0.5 (build 29). Turning on R8 for the first time cut the Android DEX from 22.95MB to 5.60MB (download −30.6%), and Hermes bytecode shrank in two rounds, by −22% and −20.6%. I removed rejection triggers before submitting, and the rejection we did get was closed out with a reply, without re-uploading the binary.

  • Android DEX **22.95MB → 5.60MB** — turned on R8 full mode for the first time, keeping only the keep rules that were strictly necessary, for a −30.6% download size. This also took the app out of Play Console's app-optimization warning range (DEX over 10MB).
  • Hermes bytecode cut in 2 stages — removing unused dependencies gave **−22%**, and replacing a barrel import that shipped all 1,767 icons with one that re-exports only the 85 actually used cut a further **−20.6%** (9.03MB → 7.17MB).
React Native 0.77 Hermes R8 Xcode / XCUITest Maestro Jest
About

About

Since mid-2024 I write almost every line of new products in pair programming with Claude AI agents. My job is to decide what to build, how to design it, and how to keep readability and efficiency intact — and to verify the result. Who typed the code matters less than whether the result is fast, clean, and easy for the next person to read.

I was the first in my company to push for AI-agent adoption, and I ran the in-house Claude workshop that changed how the team works. Migrations and rebuilds that used to collapse mid-flight before AI now reliably reach the finish line — the MeetMate v4 rebuild, completed in one month with no service downtime, is the clearest example.