Woochan Park
iOS Engineer · 5th year
At Finda, I develop and operate the iOS loan comparison service. I continually improve the app’s architecture and performance, and use data to analyze and resolve production issues.
Experience
Finda
Operational Reliability and Performance
- Identified a retain cycle in an external SDK and drove an SDK fix by sending the vendor a proposed correction. Applied the updated SDK to eliminate about 40MB of memory leaks per loan-limit inquiry, then verified the result by repeating the same scenario with Instruments.
- Classified all 388 WatchdogTermination events recorded over 90 days—Sentry’s most frequent fatal issue—and determined that 95% were false positives. Removed the false-positive sources and normalized the metric so regressions could be detected against a real-user OOM baseline.
- Used Instruments to identify 26 redundantly created URLSession instances, then consolidated them into a single shared instance, reducing average request time across 57 tasks immediately after app launch by about 25% (529.77→395.61ms).
Next-Generation API Migration and Loan Comparison Service Development & Operations
Developed and operated a loan comparison service with 580K monthly active users and 26M cumulative loan-limit inquiries, adding and improving product- and partner-channel-specific pre-screening flows for mortgage loans, business loans, and a dedicated KB Kookmin Bank experience.
- Implemented, validated, and deployed approximately 50 new screens integrating 40 next-generation APIs alongside legacy screens. Isolated route selection at flow entry points to enable gradual migration and a return to legacy flows through server-controlled A/B allocation.
- Managed state across the multi-screen loan application flow in a value-type Context and modeled navigation policies as Reactor Destination enums, making state propagation and screen exits traceable in code.
- Separated a structure in which server DTOs propagated directly into the domain and UI layers, then centralized their transformation into app domain models at the Repository boundary, removing direct UI-layer dependencies on DTOs and duplicate mappings.
App Architecture and Development Workflow
Separated screen and SDK dependencies and improved UI development, validation, and build performance.
- Separated 35 screens within my scope into Tuist modules and configured Example apps with sample data to develop and validate screens without launching the full app.
- Migrated 63 MVC/MVVM-based screens to ReactorKit-based MVI, standardizing previously inconsistent state-management and event-handling flows.
- Identified a type-checking bottleneck and restructured the code, reducing clean build time by 20%.
- Applied an adapter pattern to isolate direct MMP SDK dependencies, establishing a structure that supports replacing AppsFlyer with Airbridge.
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
Worked on service development and operational support for Seoltab, a remote tutoring iPad app.