All work

Fintech lending · 2021-2024

KoinWorks Core Android

Three years on the Core team: built the account, registration and KYC features every product shares, the form inputs of the UI kit, and the Mixpanel and Flagsmith setup.

Role
Android engineer, Core team
Timeline
May 2021 - Aug 2024
Stack
Kotlin, Jetpack Compose, Hilt, RxJava, Mixpanel, Flagsmith

Context

KoinWorks is an Indonesian fintech lending platform with one Android super-app for borrowers, lenders and business owners. I spent three years on its Core (Platform) team, which owns the account, identity and shared building blocks every product sits on, and was the second most active contributor to the app's main branch.

What I built

  • Accounts. Unified registration for personal, home business and PT/CV accounts, OTP over SMS and WhatsApp, PIN and password reset, account switching, biometric login and account deletion.
  • KYC. A KYC module for personal and business accounts, Innovatrics liveness with thresholds tuned through feature flags, an NPWP module with document camera and OCR, identity data for KTP, passport and KITAS, and a Re-KYC module in Jetpack Compose.
  • UI kit inputs. A text field with an animated label, validation and NPWP and address formats, and searchable dropdowns backed by remote data, from province down to sub-district.
  • Analytics and flags. The Mixpanel event taxonomy for registration, login and dashboards, CleverTap and AppsFlyer events, Firebase Performance traces for the registration funnel, and the Flagsmith SDK.
  • Product features. KoinBill bill payments, Talon.One promos and offer pages in Compose, referral codes, and in-app rating and feedback.

Keeping the codebase healthy

Moved legacy screens from MVP to MVVM with Hilt, split the shared header interceptor into focused OkHttp interceptors, migrated profile and token storage from SharedPreferences to DataStore, and replaced Kotlin synthetics with View Binding. Wrote unit tests for presenters, view models and repositories, set up SonarQube for the submodules, and took turns with the other platform Android engineer as release lead.