Loan Management System
Origination to closure, with an audit trail regulators can read.
- Role
- Full Stack Product Engineer
- Industry
- Fintech / Lending
- Client
- Enterprise
- Market
- India
- Duration
- 9 months
- Status
- Live
What it is
A lending back office covering the whole life of a loan, application, KYC, credit decision, disbursal, EMI schedule, collections and closure, with every state change recorded and attributable.
What was going wrong
Loans were tracked across three spreadsheets and a legacy desktop tool. EMI schedules were recalculated by hand after every part-payment, disputes took days to resolve, and nothing recorded who changed what.
- Model the full loan lifecycle in one system
- Generate and adjust amortisation schedules automatically
- Record an immutable, attributable history of every change
- Support role-separated approval workflows
How it was built
A Laravel core with an explicit loan state machine and money handled in minor units as integers, never floats. Amortisation schedules regenerate deterministically from loan terms plus the payment history, so a part-payment or a moratorium reshapes the schedule without anyone editing a row. Every transition writes an append-only audit record with actor, timestamp and reason.
The parts that were hard
Rounding that has to survive an auditor
WhyFloating-point interest across hundreds of instalments drifts, and a schedule that is a paisa short at the end is a compliance problem, not a rounding nit.
FixAll money is stored and computed in minor units as integers, with the rounding remainder deliberately assigned to a defined instalment rather than left to accumulate.
Part-payments that invalidated the schedule
WhyA single early payment changes every instalment that follows, and recalculating in place destroyed the record of what was originally agreed.
FixSchedules are derived from terms plus payment history and versioned on change, so the original agreement and the current position are both readable.
What changed
- Manual EMI recalculation removed from the operations workflow
- Every loan change became attributable to an actor with a reason
- Disputes resolvable from the audit log rather than by reconstructing spreadsheets
What I'd carry forward
Never store money in a float, and never overwrite a schedule. Both shortcuts save an afternoon and cost a quarter.
Have a product idea, or one that stalled?
Tell me what you’re building and who it’s for. If I’m the wrong fit I’ll say so on the first call and point you somewhere better.
- /naveentehrpariya
- GitHub
- /naveentehrpariya
- Direct message
Based in Jaipur, India (GMT+5:30). Replies within one business day.

