Skip to main content

— Selected work

On-demand at the curb

Built a multi-sided marketplace platform connecting consumers, mobile operators, and subscription members. Booking engine, dispatch logic, payment rails, and loyalty mechanics on a unified backend.

Industry
Marketplace
Region
South Africa
Year
2026
Role
Technical lead and platform architect
Node.js React Native PostgreSQL Redis AWS Stripe Twilio

The brief was deceptively simple: build a marketplace that lets consumers book a recurring on-demand service from independent operators, while giving the operators tools to manage capacity, pricing, and customer retention. What looked like a two-sided marketplace was actually three — consumers, operators, and a subscription tier sitting across both.

The problem

Most marketplaces in this category solve for transactional bookings. But the unit economics only work with repeat usage, which means the platform has to do real work on retention — loyalty programs, subscription plans, dunning, and operator-level customer relationships. The early prototype had stitched these together with disconnected tools. Bookings ran on one system, payments on another, loyalty in a spreadsheet, and operator dispatch over WhatsApp.

The requirement was a unified platform where a single consumer action (book a service) cleanly flowed through availability, dispatch, fulfilment, payment, loyalty accrual, and operator settlement — without the operator ever leaving their phone.

What we built

A unified backend handling the four core marketplace flows:

Booking and dispatch. A capacity-aware booking engine that matches consumer requests with operator availability in real time. Operators manage their own capacity, pricing, and service catalogue through a mobile-first interface. Dispatch logic accounts for proximity, current load, and service-type expertise.

Payments and subscriptions. A payment layer handling both one-off bookings and recurring subscription plans, with proper dunning flows for failed payments and clean operator settlement reporting. Built on payment rails specific to the market, with support for emerging direct-debit authorisation protocols.

Loyalty mechanics. Points-based loyalty integrated at the booking flow — accrual is automatic, redemption is one tap, and the entire ledger reconciles with the payment system. Operators can layer their own retention offers on top without disrupting the platform mechanics.

Operator tooling. A native operator app for capacity management, dispatch acceptance, customer history, earnings reports, and payouts. Designed for low-bandwidth environments where operators are mid-job between bookings.

Architecture decisions

Node.js services for the booking, dispatch, and notification flows (low-latency event-driven work). PostgreSQL as the system of record for bookings, customers, and operator data. Redis for the real-time availability index and dispatch queues. React Native for the operator and consumer apps, sharing a component library across both.

The notification layer is the part most marketplaces underinvest in — we built it with SMS as the primary channel (most reliable across target markets) with push notifications layered on for the apps and WhatsApp messaging deferred until business verification clears.

Status

Currently mid-build, with a pilot cohort being recruited ahead of phased rollout. Booking engine, payment rails, and SMS notification infrastructure shipped in phase one. Subscription mechanics, loyalty, and the secondary payment authorisation flow ship in phase two. Phase three adds AI-powered customer support, fleet operator tools, and a white-label SDK for operator co-branding.

← All work