Investing, from an empty repository to a licensed platform.
My first professional role, and the first product I built from nothing at production scale. Retail investors onboard with eKYC, compare mutual funds across investment managers, subscribe, track a portfolio and redeem. Laravel and Nuxt.js on PostgreSQL, with Redis in front of the fund data.
Investing was a paperwork problem
Buying a mutual fund in Indonesia used to mean a branch visit, a signature on paper, and waiting for someone to key your identity in by hand. Fund data lived with each investment manager in its own format, so comparing two products meant reading two different documents.
A licensed platform does not get a soft launch. Identity verification, order cut off times, settlement and reporting all have to be correct on the first day a real customer sends real money, and the whole thing had to be built from an empty repository.
The whole product, end to end
The calls I would defend
First platform, real money, no room to hand wave. Each of these traded something away on purpose.
In regulated products the interesting engineering is not the happy path. It is what the system does when a payment settles late, a document is rejected, or an upstream feed goes quiet.
Still the product the business runs on
The platform launched as Investamart and trades today as Invesnow. The flows I shipped in my first professional role, onboarding through redemption, are still the ones customers use, and the habits I formed here, reconciling rather than trusting and designing for the failure case, are the ones I brought to everything after it.