gw-lim

임건우 Geon Woo Lim

Software Engineer

Blog gw-lim.com
Phone 010-7311-4513
Email geonulim@gmail.com
Education 고려대학교 컴퓨터학과 Korea University, Computer Science
Location Seoul, Korea
gw-lim 프로필 사진

저는 소프트웨어 엔지니어 임건우입니다. 스타트업의 초기 창업 멤버로 합류하여 백엔드부터 웹·앱·어드민까지 서비스 전 영역을 구축했고, 6만+ 유저와 10억+ 원의 매출을 올리는데 기여했습니다. 국제학교 8년, 해외 거주 13년의 경험을 바탕으로 다양한 문화권의 동료들과 영어로 자연스럽게 협업하며, 글로벌한 시야로 문제를 정의하고 풀어가는 데 강점이 있습니다.

I'm software engineer, Geon Woo Lim. As an early founding member of a startup, I built the entire service stack — from backend to web, mobile, and admin — and helped grow it to 60K+ users and $1M+ in revenue. With 8 years at international schools and 13 years living abroad, I collaborate naturally in English with colleagues from diverse cultural backgrounds, bringing a global perspective to defining and solving problems.

Careers

이벤트 기반 개인화 섹션 구축 Built event-driven personalization sections

Kafka 이벤트를 유저별 스냅샷으로 저장하여, 조회 시점에 외부 호출 없이 응답하는 일정·상태 섹션 개발 Developed schedule and status sections that respond without external calls at read time by storing Kafka events as per-user snapshots

  • 약속 Kafka 이벤트를 수신해 gRPC로 상세를 조회한 뒤 스냅샷으로 저장, 알바·중고거래·부동산·레슨·중고차·예약·공동구매 등 9개 유형을 순차 프로덕션 배포
  • 도메인별 부가 정보를 facet 구조로 분리하여 신규 유형 추가 시 기존 코드 변경 없이 확장
  • 외부 서비스가 지연·실패해도 저장된 스냅샷으로 응답하는 fallback으로 안정성 확보
  • Consumed appointment Kafka events, fetched details via gRPC, and stored them as snapshots; shipped 9 types to production sequentially — part-time jobs, secondhand, real estate, lessons, used cars, reservations, group buying, and more
  • Separated domain-specific attributes into a facet structure, so new types could be added without touching existing code
  • Secured stability with a fallback that serves stored snapshots even when external services are slow or fail

SDUI 확장 설계 및 개발 Designed and built an SDUI extension

나의당근 지면 UI 구성을 서버에서 제어하는 SDUI 확장 스키마와 API를 설계하고, 클라이언트가 각 서비스 팀 API를 호출하던 섹션까지 서버 조립 방식으로 전환 Designed the SDUI extension schema and API that let the server control the UI composition of the My Karrot surface, moving sections the client used to assemble from per-team APIs to server-side assembly

  • 클라이언트가 각 서비스 팀의 API를 호출해 구성하던 섹션까지 서버가 데이터를 모아 조립하도록 SDUI v2로 확장
  • 매너온도·본인인증·프로필·배너를 gRPC로 연동하여 지면 전체를 서버에서 제어
  • Redis 캐시를 Kafka 변경 이벤트로 갱신하여 외부 서비스 호출을 줄이면서 변경사항을 즉시 반영
  • Extended SDUI to v2 so the server gathers and assembles data for sections the client previously built by calling each service team's API
  • Integrated manner temperature, identity verification, profile, and banners via gRPC to control the entire surface from the server
  • Refreshed the Redis cache from Kafka change events, cutting external service calls while reflecting changes immediately

나의당근 탭 구조 설계 및 선생님 탭 출시 Designed the My Karrot tab structure and launched the Teacher tab

유저에게 나의당근에 탭을 선별 노출하는 구조를 설계하고, 첫 사례로 선생님 프로필 보유 유저 대상 선생님 탭을 프로덕션 배포 Designed a structure that selectively exposes My Karrot tabs per user, and shipped the Teacher tab to production as the first case, targeting users who hold a teacher profile

  • 선생님 프로필 전량을 백필하고 생성·수정 Kafka 이벤트로 동기화하여, 선생님 프로필을 가진 유저들에게 선생님 탭을 출시
  • 탭 툴팁의 노출 조건을 Unleash 정책으로 분리해, 배포 없이 노출 대상과 기간을 조정
  • Backfilled every teacher profile and kept it in sync through create/update Kafka events, launching the Teacher tab for users holding a teacher profile
  • Moved tab tooltip exposure conditions into Unleash policies, allowing the audience and period to be adjusted without a deploy

유저 이벤트 저장소 설계 및 개발 Designed and built a user event store

유저 행동 이벤트를 수집하기 위한 저장소를 설계하고, 최근 본 글에 적용 Designed a store for collecting user behavior events and applied it to the Recently Viewed feature

  • 예측되는 쓰기 및 읽기 패턴을 바탕으로 DynamoDB 저장소를 설계
  • 유저의 글 조회 이벤트를 적재하여 최근 본 글의 대상을 단순 중고거래에서 커뮤니티 글까지 넓히며 적용
  • Designed a DynamoDB store based on projected write and read patterns
  • Ingested post-view events to widen Recently Viewed from secondhand listings alone to community posts

팀 슬랙 에이전트 개발 Built a team Slack agent

TypeScript와 Claude Agent SDK, MCP로 팀 맥락을 아는 슬랙 에이전트를 설계하고 운영 Designed and operated a Slack agent that understands team context, using TypeScript, the Claude Agent SDK, and MCP

  • MCP 서버의 도구와 작업 절차·도메인 지식을 담은 스킬을 모델이 직접 골라 쓰도록 하네스를 설계
  • 슬랙 스레드·노션 문서·코드를 매일 비교해 팀 지식 문서를 갱신하고, 답변을 생성할 때 근거로 활용
  • 팀원들이 슬랙 스레드에서 코드 작업, 배포, 지표 조회, Sentry 에러 원인 분석, 기능 검증, QA 문서 작성을 요청하는 형태로 사용
  • Designed a harness where the model itself picks from MCP server tools and skills that carry work procedures and domain knowledge
  • Updated the team knowledge document daily by comparing Slack threads, Notion documents, and code, and grounded generated answers in it
  • Used by teammates from Slack threads to request code work, deploys, metric lookups, Sentry error root-cause analysis, feature verification, and QA document writing

프로덕트 밋업 운영 지원 Supported product meetup operations

당근 테크 밋업에서 프로덕트 데이의 일꾼단으로 참여하여 밋업 준비 전반을 지원 Served on the organizing crew for Product Day at the Daangn Tech Meetup, supporting preparation across the board

  • 발표 장표의 말투를 다듬는 스킬을 만들어 사내 스킬 저장소에 공유, 발표자들의 장표 작성 시간 단축
  • 밋업 당일에는 현장 세팅과 발표 촬영을 담당하고, 참여자 네트워킹 진행을 지원
  • Built a skill that refines the tone of presentation slides and shared it in the internal skill repository, cutting speakers' slide-writing time
  • Handled on-site setup and talk recording on the day of the meetup, and supported attendee networking

월 1억+ 원 규모의 포인트 거래를 처리한 포인트 원장 시스템 구축 Built a point ledger system handling $100K+ in monthly transactions

동시성 제어로 포인트 원장의 회계 정합성 보장, 한달 간 1억+ 원, 4,000+ 개의 포인트 거래 처리 Guaranteed accounting consistency of the point ledger through concurrency control; processed $100K+ and 4,000+ point transactions in a single month

  • 포인트 적립/사용/회수를 이벤트 기반으로 처리하여 결제·환불·게임 등 트리거 도메인과 독립적인 포인트 원장 도메인 구축
  • 비관적 락 및 멱등성 키를 통해 동시성 문제에 방어적으로 설계, 정합성 검증 스케줄러를 통해 이상 탐지 및 알림
  • Built a point-ledger domain independent of trigger domains (payment, refund, game) by handling accrual/use/recovery via events
  • Designed defensively against concurrency issues via pessimistic locking and idempotency keys; deployed a consistency-verification scheduler for anomaly detection and alerting

핵심 도메인 무중단 분리 & 3계층 테스트 인프라 구축 Zero-downtime separation of a core domain & 3-tier test infrastructure

운영 중인 단일 엔티티에 혼재된 두 도메인을 무중단 마이그레이션으로 분리하고, 안정적인 운영을 위해 3계층 테스트 인프라 구축 Separated two domains tangled in a single production entity via zero-downtime migration, and established a 3-tier test infrastructure for stable operations

  • 운영 중 매출 핵심 도메인을 마이그레이션 비용을 고려한 aggregate 경계 절충 설계로 무중단 재설계하여 신규 도메인 확장 기반 마련
  • 행사·일자·노선의 다단계 라이프사이클을 도메인 모델 내부 상태 전이 규칙으로 내재화하여 상위 계층의 임의적 상태 변경 경로 차단
  • 3계층 테스트 인프라 구축 및 테스트 케이스 30 → 564개 확장, 회귀 테스트 도입을 통한 프로덕션 버그 재현 방지
  • Redesigned a revenue-critical production domain with cost-aware aggregate boundary trade-offs, enabling zero-downtime migration and laying groundwork for new domain extensions
  • Encoded multi-stage lifecycles of events/dates/routes as state-transition rules inside the domain model, blocking arbitrary state changes from upper layers
  • Established a 3-tier test infrastructure, expanded test cases from 30 to 564, and prevented production bug recurrence through regression testing

GA4 연동 데이터·지표 BC 설계 Designed an analytics BC integrated with GA4

비즈니스 KPI를 자체 파이프라인으로 적재·조회하여 분석 도메인을 비즈니스 도메인과 격리 Isolated the analytics domain from the business domain by ingesting and querying business KPIs through a dedicated pipeline

  • 내부 운영 데이터 집계와 외부 GA4 fetch를 자체 파이프라인으로 통합하여 비즈니스 도메인과 독립적인 분석 BC 구축
  • 비즈니스 의사결정 질문을 기준으로 지표 카테고리를 재설계, 행사·팬덤 도메인에 맞는 자체 지표 정의
  • 다축 Fact 테이블 모델링으로 다양한 지표 시나리오(GMV·리텐션·팬덤 누적/교차) 지원
  • Unified internal operations data aggregation and external GA4 fetches into a single pipeline, building an analytics BC independent of business domains
  • Redesigned metric categories around business decision questions and defined custom metrics tailored to the event/fandom domain
  • Supported diverse metric scenarios (GMV, retention, cumulative/cross-fandom) via multi-axis fact table modeling

창업 멤버로서 0→1 서비스 구축 및 사업 다각화 Built a 0→1 service and diversified the business as a founding member

백엔드·웹·앱·어드민 풀스택 개발과 현장 운영을 병행하며 누적 회원 6만+, 누적 매출 10억+ 규모의 서비스로 성장 견인 Drove growth to 60K+ cumulative users and $1M+ in cumulative revenue while balancing full-stack development (backend, web, app, admin) with on-site operations

  • 초기 창업 멤버로 합류하여 백엔드, 사용자 웹/앱, 어드민 웹까지 서비스 전 영역의 개발을 주도
  • 셔틀 운영 현장에 직접 투입되어 현장 인력 총괄, 스태프 운용, 버스 기사 커뮤니케이션, 출차 관리를 수행하며 운영 페인 포인트를 기술 개선 과제로 환원해 운영 안정화 추진
  • 포토티켓, 포도알게임 등 신규 서비스를 직접 기획·구현하여 단순 셔틀 예약을 넘어 팬덤 경험 플랫폼으로 사업 영역 확장
  • Joined as an early founding member and led development across the entire service stack — backend, user web/app, and admin web
  • Worked directly in shuttle operations on-site — managing field staff, coordinating with bus drivers, handling dispatch — and translated operational pain points into engineering improvements to stabilize operations
  • Planned and implemented new services such as Photo Ticket and Grape Game, expanding the business beyond shuttle reservations into a fandom-experience platform

공공데이터 기반 건물 정보 시각화 Building information visualization based on public data

공공데이터 API로 건축물대장·지역 데이터를 받아와 그래프로 가공하여 건물 상세 페이지의 정보성 강화 Fetched building registers and regional data via public-data APIs and rendered them as graphs to enrich the building detail page

  • 외부 데이터 fetch와 가공 로직을 분리해 차트 컴포넌트의 데이터 의존성을 단순화
  • Separated external data fetching from processing logic, simplifying the chart component's data dependencies

카카오 지도 API 기반 공간 탐색 페이지 구현 Spatial exploration page using the Kakao Maps API

확대 레벨별 표시 단위 전환과 지도-목록 양방향 동기화로 검색 결과 탐색 UX 개선 Improved search-result exploration UX through zoom-level-aware display unit switching and bidirectional map-list sync

  • 확대 레벨에 따라 클러스터/마커가 자동 전환되도록 구현하여 밀집 지역에서의 가독성 확보
  • 지도 마커와 사이드 탭의 건물 목록을 양방향 동기화하여 두 가지 방식으로 검색 결과 확인 가능
  • 커스텀 훅으로 지도가 사용되는 페이지에서만 카카오맵 스크립트를 지연 로드하여 초기 로딩 비용 절감
  • Implemented automatic cluster/marker switching based on zoom level for readability in dense areas
  • Bidirectionally synced map markers with the side-tab building list, allowing search results to be viewed in two ways
  • Lazy-loaded the Kakao Maps script via a custom hook only on map-using pages to reduce initial loading cost

Education

고려대학교 서울캠퍼스 Korea University, Seoul Campus

학사(예정)B.S. (Expected) | 컴퓨터학과Computer Science

4 / 4.5

Mar 2021 – Present

컴퓨터과학 이론을 기반으로 시스템·알고리즘·소프트웨어 설계 전반을 학습하며, 동아리·창업 경진대회·산학 캡스톤 등 학습한 내용을 실제 프로덕트로 검증하는 활동에 꾸준히 참여해왔습니다.

Studied systems, algorithms, and software design grounded in computer science theory, and consistently participated in clubs, startup competitions, and industry-academia capstones — validating coursework as real products.

주요 활동 및 성과 Key Activities & Achievements

  • • 창업 경진대회 STARTUP EXPRESS 츄츄기업가상 수상 (핸디버스)
  • • 산학 캡스톤 디자인 프로젝트 우수상 수상
  • • Won the ChuChu Entrepreneur Award at the STARTUP EXPRESS startup competition (HandyBus)
  • • Won the Excellence Award in the industry-academia capstone design project

University of California, Davis University of California, Davis

교환학생Exchange Student | Computer ScienceComputer Science

Jan 2023 – Jul 2023

학부 과정 중 한 학기 교환 학생으로 참여하여 다문화 캠퍼스 환경에서 다양한 배경의 학생들과 함께 팀 프로젝트를 수행하며 글로벌 소통 능력을 다졌습니다.

Spent one semester as an exchange student during undergraduate studies, strengthening global communication skills by working on team projects with students from diverse backgrounds in a multicultural campus environment.

코드잇 Codeit

수료Completed | 프론트엔드 스프린트 1기Frontend Sprint, 1st Cohort

Sep 2023 – Mar 2024

체계적인 코드 리뷰 문화와 페어 프로그래밍 환경을 통해 협업 워크플로우를 익혔습니다.

Learned collaborative workflows through a structured code-review culture and pair-programming environment.

Languages

원어민Native

한국어Korean

고급Advanced

English (영어)English

TOEFL 114 (2020년 취득) / SAT 1480 (2019년 취득) / 국제학교 8년 재학

TOEFL 114 (2020) / SAT 1480 (2019) / 8 years at international schools

중급Intermediate

中文 (중국어)Chinese (中文)

HSK 5급 (2019년 취득) / 중국 9년 거주

HSK Level 5 (2019) / 9 years living in China

Certifications

College BoardCollege Board

SAT 1480SAT 1480

Issued 2019