I am a Frontend Engineer with a background in open-source contributions to rich-text editors and text-rendering libraries.
Currently, I am seeking frontend developer positions.
My long-term goal is to specialize in rich-text editor core development,
contributing deeply to projects like Lexical.
리치 텍스트 에디터와 텍스트 렌더링 라이브러리 오픈소스에 기여해 온 프론트엔드 엔지니어입니다.
현재 프론트엔드 개발자 포지션을 찾고 있습니다.
장기적으로는 리치 텍스트 에디터 코어 개발에 집중하여,
Lexical과 같은 프로젝트에 깊이 기여하는 것을 목표로 합니다.
formdraft — React form auto-save library
v0.3.0 · 5.8 KB brotli · zero runtime deps · 216 unit + 87 Playwright e2e (Chromium / Firefox / WebKit)
폼이 새로고침 / 오프라인 / 멀티탭 충돌에서 살아남게 만드는 React 라이브러리. 매번 프로젝트마다 다시 짜던 ~700줄짜리 자체 구현을 패키지로 묶음. React Hook Form / Formik / TanStack Form 어댑터 포함, autoAdapter로 localStorage → IndexedDB 자동 마이그레이션, <ConflictDialog> 멀티탭 충돌 머지 UI, fieldsNeedingReentry로 비번 reentry 알림까지.
- npm:
formdraft npm install formdraft
facebook/lexical — 28 merged (★23k)
Meta의 리치 텍스트 에디터 프레임워크. 코어 패키지(lexical, lexical-list, lexical-rich-text, lexical-markdown, lexical-code-core)와 playground 양쪽에 기여.
Highlights
- #8519 Breaking · Generalize
DOMSlotand addDOMRenderExtensionoverride surface — 5 packages, opens upTextNodeDOM scoping & external HTML rendering hooks - #8482 Perf · Children fast path with suffix-incremental cache update in
$reconcileChildren— O(N) → O(K) for typing-at-end - #8481 Perf · Adopt GenMap copy-on-write for
NodeMapand reconcilerkeyToDOMMap - #8542 Detect infinite recursion in update listeners — per-editor cascade counter prevents the documented "watch out for infinite loops" footgun from hanging the browser
- #8558 Bug Fix · Cursor stuck before leading inline
DecoratorNode— cross-package selection-engine fix (lexical / rich-text / code-core) - #8505 Refactor · Centralize replace-area selection mapping + bulk splice across
lexical/list/selection/link - #8395 Add
$convertSelectionToMarkdownStringpublic API
chenglou/pretext — 3 contributions landed (★48k)
Fast, accurate text measurement & layout 라이브러리. 메인테이너가 PR을 close하고 본인 커밋에 공동작업자로 합치는 방식이라, 기여는 PR이 아닌 커밋 SHA로 들어감.
1a8b2aefeat: addletterSpacingsupportd9f2dfffix: keep CJK opening brackets with annotationsc28eecbfix: align line walkers and Hangul jamo breaks
- vitest-dev/vitest #10188 —
fix(snapshot): treat empty string as valid snapshot - vitest-dev/ivya #17 —
fix: support empty template in parseAriaTemplate - recharts/recharts #7273 —
fix: use originalDataIndex for tooltip dispatch in Bar




