Available for new work
SeDu OhI build interfaces that feel instant
Frontend engineer with a bias for performance and detail. I turn ambiguous product ideas into shipped, measurable interfaces.
- Years shipping
- 6+
- Projects delivered
- 24
- Commits last year
- 1,840
A short version
I am a frontend engineer who cares most about the web not making people wait. Over six years across commerce and data platforms I have mostly been the person building the design system and sanding down the rendering performance.
I like joining while the spec is still blurry, settling the argument with a prototype, then carrying that same prototype through to production. When I build a screen I design its loading, empty, error and keyboard states in the same pass.
Lately I have been working out where React Server Components and streaming actually pay off under real traffic. The lesson so far: deciding what to show when moves perceived performance far more than shaving the bundle does.
Outside work I photograph shop signage on film and keep taking apart mechanical keyboards I already own. I contribute to open source in small doses, having started with documentation typos.
What I work with
The tools I reach for by default, grouped by where they sit in the stack.
Comfort
Languages & frameworks
- TypeScript
- Comfort: Deep
- React
- Comfort: Deep
- Next.js
- Comfort: Deep
- JavaScript (ES2023)
- Comfort: Deep
- Vue 3
- Comfort: Comfortable
- Svelte
- Comfort: Working knowledge
Styling & design
- Tailwind CSS
- Comfort: Deep
- CSS Architecture
- Comfort: Strong
- Motion / Framer Motion
- Comfort: Strong
- Figma
- Comfort: Comfortable
- Accessibility (WCAG 2.2)
- Comfort: Strong
Backend & infrastructure
- Node.js
- Comfort: Strong
- PostgreSQL
- Comfort: Comfortable
- GraphQL
- Comfort: Comfortable
- Vercel
- Comfort: Strong
- Docker
- Comfort: Comfortable
Testing & quality
- Vitest
- Comfort: Strong
- Playwright
- Comfort: Strong
- Testing Library
- Comfort: Strong
- Lighthouse CI
- Comfort: Strong
- Sentry
- Comfort: Comfortable
Tooling & workflow
- Git
- Comfort: Deep
- Turborepo
- Comfort: Comfortable
- GitHub Actions
- Comfort: Strong
- Storybook
- Comfort: Strong
- pnpm
- Comfort: Strong
Selected work
A few things I have built end to end. Each one has a write-up on the decisions and trade-offs.
Talk532
FeaturedA realtime chat app with no server of its own
A chat you enter with a six-character code. There is no server of my own: the browser talks to Supabase directly, so the whole security boundary is a set of RLS policies written in SQL. Realtime covers whoever is online, and an edge function pushes to whoever is not.
- Role
- Solo project — schema, UI and operations
- Next.js
- React
- TypeScript
- Supabase
- PostgreSQL RLS
- Web Push
Read the case studyLive site — Talk532Atlas
FeaturedA design system six product teams share
Forty-odd components with accessibility baked in and dark mode assumed from day one. Change a token once and every product picks it up.
- Role
- Lead — architecture and build
- TypeScript
- React
- Tailwind CSS
- Storybook
- Vitest
Read the case studySource — AtlasPulse
FeaturedAn analytics dashboard whose first chart lands in under a second
Rebuilt around streaming rendering and server-side aggregation so millions of event rows still feel instant. LCP went from 4.1s to 1.3s.
- Role
- Frontend owner
- Next.js
- React
- D3
- PostgreSQL
- Vercel
Read the case studyLive site — Pulsetokens-cli
Ship Figma variables straight to CSS custom properties
A designer changes a token in Figma and a pull request opens. Built to kill the manual step in our design-system loop, now open source.
- Role
- Solo project
- TypeScript
- Node.js
- Figma API
- GitHub Actions
Signal Map
A live map of how crowded the Seoul metro is
A weekend project putting an open API onto a canvas map. Rendering is hand-managed to hold 60fps across sixty thousand points.
- Role
- Solo project
- Canvas
- TypeScript
- Vite
One-Step Checkout
FeaturedCollapsing a three-step checkout into one
Redesigned the checkout funnel of a 3M-session-a-month store. Validation, payment methods and error recovery all on one screen, for an 11% lift in mobile conversion.
- Role
- Frontend engineer
- React
- Redux
- Node.js
- Playwright
Read the case study
Where I have worked
Roles, in reverse order.
–Present4 years, 6 months
Frontend Engineer
EnlipleSeoul
Own the dashboard of a marketing automation platform, and built the in-house design system now used by six product teams.
Highlights
- Migrated the legacy dashboard to the Next.js App Router incrementally, taking LCP from 4.1s to 1.3s
- Shipped a 40-component design system with Storybook, halving the time to build a new screen
- Introduced a Playwright E2E pipeline, cutting post-deploy rollbacks from 12 a year to 2
- TypeScript
- Next.js
- React
- Tailwind CSS
- Playwright
–2 years, 2 months
Frontend Developer
Commerce LabsSeoul
Maintained a commerce frontend at 3M sessions a month and rebuilt the checkout and product detail flows.
Highlights
- Moved product detail pages to SSR, lifting organic search traffic 34%
- Collapsed a three-step checkout funnel into one, improving mobile conversion 11%
- Built an image optimization pipeline that cut average page weight 62%
- React
- Redux
- Node.js
- SCSS
- AWS
–1 year, 6 months
Web Developer
Studio ParallelSeoul
Built brand campaign sites and interactive microsites. Short cycles, steep learning curve.
Highlights
- Delivered 18 campaign sites, holding every one above a Lighthouse score of 90
- Built WebGL and Canvas interactions, and documented the approach as an internal guide
- JavaScript
- GSAP
- Three.js
- WordPress
Let's build something
Open to full-time roles, contract work and interesting conversations. I reply to everything.