Founding engineer · Jun 2025 – present
Recyclr
A compliance and operations product for licensed UK waste carriers, taken from concept to a shipped product on the App Store, Google Play and the web. I owned mobile, payments and the early architecture as one of two engineers.
- React Native / Expo
- Stripe (Connect + Tap to Pay)
- Next.js
- Java / Spring Boot
- PostgreSQL
- AWS / Terraform
The problem
Sole-trader and small UK waste carriers run on fragmented job sources, paper waste-transfer notes and slow payment collection. They win work in one place, manage it in another, and chase money in a third. Recyclr puts the marketplace, the job and route management, and on-site payment in one product, and it has to work for a one-van operator and a multi-vehicle fleet without becoming two separate apps.
What I built
I was one of two engineers who built the whole product, with a domain-expert CEO guiding it. I owned the mobile app, payments, and the early architecture.
The operator app (Expo, React Native) is what carriers actually use in the field: navigate to a job, complete it, and take a card payment on site. I built it dual-mode from the start. A sole trader gets the full picture; a fleet driver gets an operational-only view, with the owner’s accounts and financials hidden behind role-based access. Same platform, two very different jobs to do.
Payments run on Stripe. Connect Express onboarding so each carrier gets paid directly, destination charges with an application fee, and separate platform and connected webhook handling so account events and payment events do not get crossed. On mobile, carriers take payment in person with Stripe Terminal Tap to Pay, no extra hardware.
Underneath, the platform is schema-per-tenant on PostgreSQL (a custom Hibernate connection provider and tenant resolver), so each carrier’s jobs, quotes and invoices are isolated while users and accounts stay shared.
The hard part
Tap to Pay was the one I would want to talk through. It is not just an SDK call. Apple and Stripe gate it behind device, entitlement and compliance requirements, and getting it from a working demo to something that would pass review took several rounds of audit work across provisioning, the payment flow and how the on-device reader is handled. Getting a small team’s first in-person payment to clear cleanly, then through App Store review, was the real bar.
Status
Live. The operator app is on the iOS App Store and Google Play, with the web product at recyclr.co.uk, all shipped through EAS Build and a Terraform-defined AWS setup in eu-west-2. Real carriers, real card payments.