← All work

Payments Infrastructure · CTO & CPO

Centili

A carrier-grade payments and identity platform — direct carrier billing across 280+ telco integrations reaching four billion mobile subscribers, re-architected end to end.

Role

CTO & CPO

Years

2023 — 2026

Scale

~$20M peak revenue · 50+ products

Team

10-person product & engineering, P&L

Centili developer portal Direct Carrier Billing · CAMARA · Temporal Centili

Payments in an arcane, regulated B2B infrastructure domain — where the rails behind a 280-operator footprint had to be modernised without dropping a single transaction.

Context

Centili charges mobile subscribers directly on their carrier account across 280+ mobile operators. I led a ten-person product and engineering organisation with P&L responsibility for the three core product lines and served on the corporate development team alongside the CFO — identifying and leading investment-banker conversations.

What I built

  • Re-architected and rebuilt the core direct-carrier-billing platform end to end, modernising the rails behind the 280+ operator footprint.
  • Built Centili Secure — SIM-based authentication (silent network authentication, identity verification, MFA) — from concept to launch.
  • Secured a $50M contract with Walmart through Newavo, a digital storefront built and launched with Walmart Mexico.
  • Launched Bloom, a streaming platform, acquiring 10,000+ hours of content to extend the company into direct-to-consumer media.
  • Grew individual products to $8K in daily revenue; helped raise $10M+ in equity and $50M in debt to fund the platform's first acquisition.

How it's built

The v3 platform is a MACH architecture — twelve TypeScript microservices and three Next.js portals — that replaced legacy Kafka saga choreography with Temporal-orchestrated workflows, guaranteeing exactly-once payment execution and automatic compensation on failure.

A Kong gateway fronts an Apollo GraphQL BFF; an outbound anti-corruption layer marshals every operator through the CAMARA billing standard and Aduna silent-network-auth, with vendor-specific adapters behind it. A dual-layer risk engine — deterministic rules plus TensorFlow-Serving inference — scores fraud in under 100ms and can escalate to out-of-band CIBA challenges. Data isolation is schema-per-tenant on PostgreSQL; MSISDNs are HMAC-hashed at the edge and never leave identity-service in the clear. Redpanda carries billing, catalog and settlement events; the whole thing targets 10k+ TPS with cross-region failover.

Outcome

A modern payments platform spanning 80+ markets and 280+ carriers, a new SIM-authentication product line, a $50M enterprise contract, and the fundraising that seeded the company's first acquisition.

TypeScriptNode 22TemporalPostgreSQL 17 / PrismaRedpandaRedisGraphQL / ApolloKongKeycloakNext.jsAWS EKSOpenTelemetry

Core feature

Rebuilt in Centili's own UI

The operator dashboard's core surface: a live transaction ledger where every row carries its Risk Engine score and one of three fraud decisions (ALLOW / CHALLENGE / BLOCK), with the selected 2-STEP transaction expanded into its reserve → authorise → capture → confirm lifecycle and a one-click capture action.

Risk Engine — live transaction stream with ALLOW/CHALLENGE/BLOCK fraud decisions + 2-step reserve→confirm flow

risk engine · live

Transaction stream — fraud decisions

AssessRisk · p50 42ms
Transaction Merchant Amount Status Flow Risk Carrier Created
txn_8Q2FZ7KDX VideoMax £4.99 CONFIRMED ONE-STEP 17 ALLOW EE (UK) Jul 07 · 14:22
txn_5MT9WLA0R GameVault £29.99 RESERVED TWO-STEP 63 CHALLENGE Vodafone UK Jul 07 · 14:23
2-step reserve → confirm · CIBA challenge cleared
Initiated
14:23:01
Risk decision: CHALLENGE
Reserved
14:23:13
Vodafone UK authorised · hold £29.99
Awaiting capture
expires 14:38
CIBA verified on handset
Confirmed
pending
Capture the held reservation
txn_3K7PBN4VE StreamPlus £12.00 FAILED ONE-STEP 91 BLOCK MTN NG Jul 07 · 14:23
txn_9F1XCJ6HD SportLive £7.49 CONFIRMED TWO-STEP 28 ALLOW O2 (UK) Jul 07 · 14:24
txn_2W6RHT8YQ CloudSaves £3.99 EXPIRED TWO-STEP 58 CHALLENGE Telkomsel Jul 07 · 14:24
ALLOW <55 CHALLENGE 55–79 BLOCK ≥80
op_vod_a3f9 · 6 rules matched · sub +44 •••• ••417