Hyunho Noh

Frontend Developer

Profile

Prioritizing user experience to build valuable web services.
Writing code with a focus on scalable architecture and performance optimization.

Tech Stack

Experience

Built a strong foundation in frontend development and UI·UX at a design agency.

  • Developed interactive web experiences using GSAP, Canvas, and other technologies.

Led frontend development for SchoolBell, a notification service platform (Web & App).

  • Refactored legacy code and resolved technical debt
  • Migrated Cordova app to Capacitor, improving performance and maintainability
  • Introduced Nx monorepo to resolve dependency issues across multiple projects
  • Implemented i18n internationalization to support multi-language content across the platform
  • Established Angular-based internal coding conventions, wrote guides, and trained new hires
Projects
SchoolBell Application Renewal

Ported the legacy Cordova-based application to Capacitor and Ionic.

IonicAngularRxJSTailwind CSSNx

Providing personal chess coaching and developing chess-related web services.

  • Full-stack web application development
  • Designed data structures using PostgreSQL
Projects
Chesscake Studio

A project that produces chess educational videos using frontend technologies.

  • Code-based video production: Video scenes are defined as React components and rendered frame-by-frame by Remotion.
RemotionReactTypeScript
Chesscake

Building an interactive chess learning platform for chess learners tired of passive, traditional learning methods.

Svelte/SvelteKitshadcn-svelteTailwind CSSPostgreSQLDrizzleBetter AuthZod
Mini Art Bonbon

A real-time interactive drawing engine prototype built to gain a fundamental understanding of digital drawing. It allows multiple users to draw simultaneously on a single canvas, optimized for smooth performance even as stroke count grows.

  • O(1) Rendering Performance: Introduced PixiJS RenderTexture to prevent main thread blocking caused by accumulating Bézier curve computations, eliminating frame drops as stroke count increases.
  • SSOT Architecture & State Sync: The server acts as the single source of truth for all stroke vector data. Snapshots every 50 strokes let late-joining users instantly reconstruct the full canvas state.
  • Optimistic UI: Client strokes are rendered locally immediately without waiting for server responses, maximizing user experience. However, an interview question helped me realize that concurrent drawing by multiple clients could cause race conditions, leading to inconsistent stroke order and mismatched canvas states across clients. To resolve this, I plan to update the architecture so the server broadcasts a confirmed stroke buffer at each snapshot interval, automatically reconciling stroke order across all connected clients.
Svelte/SvelteKitshadcn-svelteTailwind CSSPixiJSHono

Contact

Feel free to contact me for any inquiries.
fireonmac@email.com