Using Technology for Creative Problem Solving

I specialize in developing scalable and high-performance front-end projects, from small websites to large applications.
While I mainly use Angular and React, I prefer selecting the most efficient technology for solving problems.
I enjoy contributing back to open source as much as I have gained from it, and I am involved in various projects.

Skills

I can design the optimal tech stack for various business environments, from On-Premise to PaaS and SaaS, and execute projects from start to finish.

Front-End

  • Design and development of web applications (CRA/SSG/SSR) based on Angular/React
  • Project design and development based on ECMAScript/DOM API
  • Development of module libraries using CommonJS/ES Module
  • Operation of modern web bundlers like Webpack/Vite
  • Design and development of desktop application projects using Electron, Tauri, etc.
  • Handling cross-browser issues for Internet Explorer, Safari, etc.
  • Design and development of WebView projects for iOS/Android support

DevOps

  • Deployment system setup and cost optimization for cloud platforms like Cloudflare/AWS/Azure
  • Setup and management of container deployment systems based on Docker
  • Setup and management of CI/CD environments like Github Actions/Circle CI

Key Technology Keywords

Typescript favicon Typescript Angular favicon Angular React favicon React Webpack favicon Webpack Jest favicon Jest Aws favicon Aws Docker favicon Docker

Work Experience

Swit Korea based in South Korea

Front-End Developer

Oct 2021 - Jun 2024
Text Editor

Oct 2023 - Jun 2024

Designed and implemented a text editor that supports all platforms to eliminate functionality differences across Swit's clients.

  • Established a monorepo and NPM distribution system for feature-based modules
  • Implemented core editor based on ProseMirror
  • Developed Android/iOS editor based on WebView
  • Addressed cross-browser issues
Integrated Authentication Solution

Jan 2023 - Aug 2023

Designed and implemented an integrated authentication solution to reduce development costs and provide consistent functionality across Swit's clients.

  • Implemented UI for the integrated authentication service
  • Integrated OAuth with MS/Apple/Google
  • Synchronized authentication information across tabs using Broadcast API
  • Developed a session management client library for web services
Translation System Improvement

Aug 2022 - Dec 2022

Built a translation system to support 14 languages efficiently and manage translation data.

  • Removed code dependencies of translations by adopting ICU MessageFormat
  • Implemented back-office for automating entire data processes
Design System

Apr 2022 - Oct 2022

Designed and implemented a design system to eliminate UI/UX differences across Swit's web services and speed up business development.

  • Implemented numerous components like Modal, Layer, Virtual Scroll
  • Set up automatic deployment systems with Github Actions and NPM
  • Established component testing and documentation system with Storybook
Task Management System

Oct 2021 - Jun 2022

Renewed Swit's existing task management system and conducted large-scale performance optimizations.

  • Implemented plugin to define task states
  • Developed Kanban/Tree view library based on virtual scroll
  • Analyzed and optimized layout shifting

Work Experience

Epapyrus based in South Korea

Senior Researcher

Mar 2021 - Oct 2021
Pen Input Improvement

Jul 2021 - Sep 2021

Implemented a feature allowing users to input handwritten signatures on the web.

  • Developed UI for pen handwriting input
  • Optimized vectors using linear interpolation and Bézier curves
Digital Signature

Mar 2021 - Jul 2023

Implemented a feature allowing users to sign PDF documents using a public certificate.

  • Developed UI for the digital signature form and process
  • Integrated modules for public certificates from Korea Electronic Certification and Dream Security

Playauto based in South Korea

Full- Stack Developer

Sep 2019 - Feb 2021
Multi-Framework

Aug 2020 - Feb 2021

Implemented a multi-framework architecture to gradually replace AngularJS due to its end of life.

  • Implemented framework switching by routing
  • Developed migration tools for framework replacement
Datatable Library

Feb 2020 - Aug 2020

Re-implemented the datatable library based on jQuery, significantly improving page rendering performance.

  • Developed a virtual scroll table library
  • Replaced all table libraries within the app
Global Shopping Mall Integration

Sep 2019 - Feb 2021

Handled full-stack development for the global shopping mall integration service.

  • Integrated APIs for international shopping malls like eBay, Shopee
  • Implemented detailed front-end UI for each sales stage

Open Source

2023

Creating a rich text editor library for browsers. The project aims to make it easier and faster for businesses to adopt ProseMirror.

  • Provides rich features and extensibility based on ProseMirror.
  • Feature-based modules can be used independently with a monorepo structure.
  • Supports various formats and is easily customizable by users.

A tool for creating presentations specialized in animations. I started it because I often have to present in my company or external activities, and existing presentation tools were inconvenient.

  • Build presentations by scenes instead of pages.
  • Supports offline storage, usable in any environment where the browser is supported.

A utility to make drawings on the web look more natural. Started to solve the issue of jagged lines when drawing with touch or pen.

  • Optimizes user input coordinates to enhance storage efficiency and rendering performance.
  • Corrects user input to smooth curves using Bézier curve characteristics.

A library for fast rendering of large data sets through virtual scrolling. Implemented Android's RecyclerView for the web to overcome the issue of web being slower than apps.

  • Renders only the elements at the user's scroll position from the entire scroll.
  • Reuses elements out of view to enhance scrolling performance.