Skip to content
Faidhi Fahmi.
All selected works
ProductTechnicalTeam leadershipGrowth

Building an insurance platform, and the team that shipped it

Organisation
iLyF — Easy, Instant Insurances
Role
Chief Product Officer · Product & Technical Delivery Lead
Period
Sep 2022 – present · Malaysia

I came in to help build a personalised motor insurance app and ended up owning the whole delivery surface: the architecture, the insurer integrations, the growth engine, the analytics everyone argued from, and a distributed team across three countries.

app installations in 30 months
200K–250Kapp installations in 30 months
registered vehicles
150K–200Kregistered vehicles
growth in monthly gross written premium
~8×growth in monthly gross written premium
annual gross written premium
RM2M–3Mannual gross written premium
return on ad spend, through Q4 2024
0.5 → 1.65return on ad spend, through Q4 2024
across 3 countries
10–15 peopleacross 3 countries

How the system actually worked

The five systems behind one appOne app sits on top of four systems: an insurer integration layer normalising five providers into one contract; quote and checkout, returning under two seconds at peak; fulfilment, which physically delivers a road tax sticker; and growth and renewal, which acquires customers and then wins their second year at 60, 30, 7 and 1 days before expiry. All four rest on a fifth layer drawn as a foundation: instrumentation, executive dashboards and release governance.One appquote, pay, insured, road tax deliveredInsurerintegration layerFive providers,one normalised contractQuote andcheckoutUnder two seconds at peak,payment, cover noteFulfilmentRoad tax deliveredto the doorGrowth andrenewalAcquisition, then renewalat 60/30/7/1 daysInstrumentation · executive dashboards · release governancethe layer that kept the other four honest

Scroll the figure sideways to read it, or turn your phone.

The five systems behind one app. The dotted band underneath — instrumentation, executive dashboards, release governance — is what kept the other four honest.
How the team actually ranA delivery cycle drawn as a loop. One written priority per cycle leads to a spec with acceptance criteria, then build, then a QA and UAT gate. Work that fails the gate returns to build — the return path is part of the design, not an exception. Work that passes is demonstrated against real production-shaped data rather than mockups, then released. Ten to fifteen people across three countries sustained this bi-weekly to monthly for three years and roughly fifty releases.One writtenpriorityper cycle1Spec withacceptancecriteria2BuildQA / UAT gate3Demo againstreal datanever mockupspasses4fails the gate → back to build10–15 people across 3 countries · bi-weekly to monthlysustained for three years and roughly fifty releases

Scroll the figure sideways to read it, or turn your phone.

  1. One written priority per cycle. Not a ranked list — one, written down, so that “what are we doing” is never a matter of recollection.
  2. Acceptance criteria in the spec, so “done” is not a matter of opinion between a developer and a reviewer.
  3. The gate is allowed to refuse. Work that fails goes back to build, and that return path is the reason the gate is worth having at all.
  4. Demos run against real production-shaped data. A demo on seed data hides exactly the problems you need to find.
How the team actually ran. Three countries, one written priority per cycle, and a QA/UAT gate that could send work back to build. Sustained bi-weekly to monthly for three years.

Context

Buying motor insurance in Malaysia meant an agent, a phone call and a wait. The bet behind iLyF was that all of it — quote, payment, cover note, road tax delivered to your door — could happen in an app in a few minutes. When I joined, that bet existed as an idea and a small team, not as a working funnel.

What was actually needed

Not one product, but a chain where every link had to hold: an ad that acquired profitably, a quote that returned fast enough to keep someone in the flow, a checkout that took money without failing, a fulfilment path that physically delivered a road tax sticker, and a renewal a year later that cost almost nothing to win. One weak link and the unit economics collapse quietly.

What I did technically

I owned the architecture and the delivery against it — the insurer integration layer and the normalised quote contract underneath it, the data model, the admin and operations tooling my own team would live inside, the analytics instrumentation, and the performance work that kept the API under two seconds at peak. I stayed close enough to the code to make the calls on caching, query optimisation and where to spend reliability effort, rather than delegating those and hoping.

How I ran the team

Ten to fifteen people across three countries, which makes the operating rhythm matter more than the tooling. One written priority per cycle. Specs with acceptance criteria, so "done" was not a matter of opinion. A QA and UAT gate that was allowed to send work back. Demos against real data rather than mockups, because a demo on seed data hides exactly the problems you need to find. That rhythm took roughly 280 manhours per quarter out of the development cycle, and it held for three years and 50-odd releases.

Decisions that mattered

Two. First, treating renewal as a product surface rather than a marketing task — automated outreach at 60, 30, 7 and 1 day before expiry turned a customer’s second year into near-free revenue, and is the single biggest reason return on ad spend went from roughly 0.5 to 1.65 by Q4 2024, with net return crossing 1.0 in that quarter. Second, building the executive dashboards early. Seeing GWP, conversion, CAC and ROAS in one place is what let us cut spend that looked busy and fund the channels that actually paid.

What changed

Installations in the low hundreds of thousands and registered vehicles not far behind, with monthly gross written premium growing roughly eightfold and annual GWP in the low millions of ringgit. Several months inside the Google Play Store’s top 10 Lifestyle apps. A travel insurance line launched within six months, turning a single-product app into a marketplace selling to a base we already had. And six figures in USD raised in convertible notes and angel investment, off the back of reporting the numbers honestly quarter after quarter.

The insight I kept

Growth in insurance is a retention problem wearing a marketing costume. We spent the first stretch optimising acquisition and the numbers stayed stubborn. The moment renewal became automatic, the same ad spend started working. I now look for the loop before I look for the funnel.

Stack & practices

  • AWS
  • MySQL
  • Node
  • React
  • Mixpanel
  • Sentry
  • Agile delivery
  • QA/UAT governance

Got a problem shaped like this one?

A short conversation is usually enough to see if there's a fit.