Full-stack Engineer · Seoul, KR

Benjamin
Vasseur

I build production systems end to end: REST APIs and microservices in Node.js, plus the data-heavy React and WebGL interfaces on top.

20×
Rendering speed
50%
Load time cut
14+
Years experience
live · canvas · 60 fps · rendered in real time, not a gif
About

I started in backend (PHP, then Node.js and Python), which still shapes how I see full product systems end to end. Over the years I moved to the front end across Angular, Vue, and React, focused on maintainable UIs for complex applications.

For 3+ years my work has centered on high-performance rendering: Canvas and WebGL for real-time, data-heavy interfaces in medical and scientific domains. Based in Seoul, I work comfortably across international teams and time zones.

Selected work

Deep dives
01 / LVIS Corp2024–2025

Live EEG Amplitude Heatmap

20×
faster rendering 3–4 FPS → stable 60 FPS
⤢ Expand
Vue.jsCanvas APITypeScript
Challenge
The SVG implementation did full redraws on every update. Performance collapsed as live data streamed in, making real-time monitoring unusable.
Solution
Rewrote the engine on Canvas with incremental drawing (only changed regions re-render) and trimmed the data pipeline to a stable frame rate.
Result
From 3–4 FPS to a steady 60 FPS. Smooth scrolling and real-time updates with zero frame drops during continuous streaming.
02 / Lunit2021–2023

Cancer Cell Detection Viewer (uIHC v3)

50%
render time cut on 5GB whole-slide images
⤢ Expand
ReactWebGLWeb WorkersTypeScriptNx
Challenge
Slides hold millions of cells with many properties. Zoom, pan, hover and threshold changes had to stay smooth on images up to 5GB.
Solution
Capped minimum zoom to control density, moved heavy preprocessing to Web Workers, and used WebGL with tile-based loading for GPU-accelerated cells.
Result
Halved rendering time on million-cell slides while keeping all interactions smooth in real time.
03 / Side project2026

Korean Anki Miner

~2s
click → finished Anki card, end to end
⤢ Expand
Vue 3TypeScriptWXTChrome MV3ClaudeMistral
Challenge
Read YouTube captions reliably across SPA navigation, isolate the overlay from YouTube's CSS, and keep API keys away from hostile page scripts.
Solution
A strict trust boundary keeps secrets in the service worker; the UI mounts in a Shadow DOM. Papago handles fast lookups, Claude handles structured card enrichment.
Result
A releasable MV3 extension: click a word, get a finished card with screenshot and AI explanation in seconds. CI builds and publishes on every tagged release.

Experience

2011–2025
Aug 2024 – Sep 2025
LVIS Corp
Software Engineer · Seoul
EEG analysis platform with AI. Canvas amplitude heatmap, 3–4 → 60 FPS (20× faster). Led user/team app with Stripe & KG Inicis.
Dec 2021 – Dec 2023
Lunit
Front-End Developer · Seoul
AI cancer-cell viewer on whole-slide images. React + WebGL + Web Workers; 50% faster on 5GB slides. Nx/Turborepo design system.
Feb 2019 – Dec 2021
Global Coach Group
Full-Stack Lead · Seoul
Led a team of 3, set review & architecture standards. Node/Python REST APIs. 12-language localization via Lokalise.
Jun 2015 – Feb 2019
3i Inc.
Full-Stack Developer · Seoul
SaaS for 3D/VR content authoring. Real-time collaboration over WebSockets; auth & role-based permissions.
May 2014 – May 2015
Faire Savoir
Full-Stack Developer · Lille
Public-facing tourism sites on Drupal with booking & reservation features.
Sep 2011 – May 2014
Élap
Developer · Lille
Financial software for the public sector. Expense/stock management, automated receipts & invoicing.

Skills

Front-End
TypeScriptReactNext.jsVue.jsViteWebGLCanvasTailwind
Back-End
Node.jsExpressPythonPHPREST APIs
AI
ClaudeMistral AI
Database
PostgreSQLMySQLMongoDBMariaDB
DevOps
DockerAWSCI/CDVercelCypressGitFigma
Languages
French · nativeEnglish · fluentKorean · TOPIK 2

Open to new opportunities

Let's talk.

Currently looking for new opportunities. A question or just a hello, either is welcome.

Seoul, South Korea · F-2 visaFR native · EN fluent · KO TOPIK 2© 2026 Benjamin Vasseur