The problem
LenDenClub runs India’s largest peer-to-peer lending marketplace: lenders on one side chasing returns, borrowers on the other needing small loans (₹5,000–₹50,000) disbursed fast. At 3M+ users, every architectural weakness becomes a support ticket at scale — and in lending, a failed payment flow isn’t an inconvenience, it’s someone’s loan not arriving.
My role
Senior Android developer contributing across both apps — the lender-side LenDenClub app and the borrower-side InstaMoney app — working with a distributed cross-functional team of mobile and backend engineers, QA and product owners in an agile cycle.
Architecture decisions
- MVVM with strict layering — ViewModels exposed Kotlin Flows to the UI, keeping business logic testable and screens dumb. Dagger-Hilt handled dependency graphs across feature modules.
- Structured concurrency — Kotlin coroutines replaced callback chains in the loan application flow, where a single submission touches KYC, credit checks and payment rails.
- Event instrumentation as a first-class concern — CleverTap, Adjust, Firebase and Facebook events wired through a single tracking abstraction, so product could measure funnel drop-off without engineers hand-placing calls per SDK.
- CI/CD hardening — improved the pipeline so release candidates were reproducible and faster to cut, tightening the release cadence.
The hardest problem
Payment-gateway integration in a lending context: disbursals and repayments cross multiple gateways with different failure semantics. The work was less about calling APIs and more about designing state machines that survive process death, flaky networks and gateway timeouts without ever double-charging or losing a repayment record.
Outcome
Both apps live on the Play Store serving millions, with improved scalability and feature-delivery speed on an app whose users depend on it for real money — often within a two-hour disbursal promise.




