Woochan Park

iOS Engineer · 5th year

I design and implement application flows for a loan comparison platform, where underwriting and exception paths vary by product. I am responsible for building and operating core application experiences, spanning next-generation API migration, MVI and modularization, reliability and performance improvements, and WebKit-based Native-Web integration.

61 APIs migrated 63 screens migrated to MVI 35 screen modules defined 99.9% crash-free users Eliminated a 40MB per-inquiry memory leak 20% total build-time reduction

[email protected] +82 10-5131-9925

Experience

Finda

Financial Products Team · iOS Engineer

Aug 2022 - Present

Next-Generation API Migration and Loan Application Flows

Worked on application flows for loan comparison, mortgage loans, business loans, and a dedicated KB Kookmin Bank experience.

  • Migrated 61 APIs in the loan comparison flow to a next-generation API service standard and updated response structures, error handling, and screen-branching logic across 50+ affected screens. Validated state transitions throughout the long application journey with 843 manual developer test cases before production release.
  • Implemented loan application flows with product-specific underwriting states and exception branches. Added polling-based status refresh and recovery flows for failures, errors, and background transitions to the loan limit inquiry progress screen.

Loan Application Modularization and MVI Migration

Layered state management and navigation logic for loan application screens to constrain the impact of feature changes at the screen level.

  • In a Tuist-based multi-module environment with 120+ modules, defined boundaries for 35 screen modules. Used Interface/Implementation separation to control compile-time dependency direction.
  • Migrated 63 loan application screens, where API calls, state branching, and navigation logic were concentrated in ViewControllers, to a ReactorKit-based MVI architecture.
  • Designed a repeatable modularization workflow. Automated dependency and impact analysis and module configuration with Claude Skills, reducing recurring modularization lead time from 1.4 to 0.3 person-days.

Reliability, Performance, and Productivity Improvements

Analyzed and improved metrics directly tied to operational reliability, performance, and developer productivity.

  • Resolved 15 memory leaks identified by a runtime leak-detection system and contributed to maintaining 99.9% crash-free users over the most recent six months.
  • Classified all 388 WatchdogTermination events over 90 days — Sentry's most frequent fatal issue — and identified 95% as false positives (QA-automation force-kills and in-app exit(0)). Eliminated both sources at the root by excluding automated sessions from tracking and introducing a graceful exit, normalizing the metric to a real-user OOM baseline (4–5 events/month) where regressions are detectable.
  • Analyzed the cause of a retain cycle in an external SDK, documented and sent the findings and fix proposal to the vendor, and drove a library-level improvement. After applying the updated SDK, used Instruments to repeatedly verify that a memory leak accumulating 40MB per loan limit inquiry, about 60% of the 64MB baseline, was eliminated.
  • Identified type-checking bottlenecks in Swift compiler logs and improved the code structure, reducing total build time by 20%.
  • Consolidated redundantly created URLSession instances into one shared instance, removing connection overhead for consecutive same-domain requests. Across 57 tasks immediately after app launch, reduced average request time by 33% and total request time by 36%.

WebKit-based Native-Web Integration

Worked with the frontend team to define Native-Web message handling standards and the scope of Native capabilities exposed on each screen in a hybrid app.

  • Defined and documented exposure boundaries for shared and screen-specific JavaScript handlers, and removed 25 unused handlers to reduce unnecessary paths to Native capabilities.
  • Analyzed a WebKit crash in Sentry caused by a missing WKUIDelegate completionHandler invocation. Added a call-once guard to JavaScript alert/confirm handling so the completion callback is invoked exactly once.

Onui

Product Team · iOS Engineer

Worked on service development and operational support for Seoltab, a remote tutoring iPad app.

Dec 2021 - Jul 2022