Case study · Lead engineer · Lebara
Rebuilding Lebara's 6M+ customer app, then launching Travel eSIM
Lebara is a mobile network operating across Europe. I led the rebuild of its flagship app and grew mobile from a team of one to 12 engineers. Then I built Lebara Travel eSIM on my own, from idea to pitch to launch. It reached around 120,000 users in the UK and US within 6 months.
6M+
customers on the app
3.2 → 4.7
App Store rating after the rebuild
5.6s → 0.5s
cold start, via React Native New Architecture
1 → 12
mobile engineers, grown from a team of one
The app was part of Lebara's recognition as Most Popular Mobile Network (Uswitch 2024) and Best MVNO (Mobile News Awards).
The app rebuild
A large, live app with a low rating, slow launches and fragile releases. The work was sequenced to unblock the biggest problems first.
Rebuild with zero downtime
Moved the flagship app to a new platform while it stayed live for millions of customers. No customer-facing downtime during the switch.
Event-driven architecture
Decoupled UI state from business logic so feature teams could ship in parallel without stepping on each other.
Headless CMS for mobile
Designed and built a headless CMS layer on Adobe Experience Manager, so content and marketing teams could update the app across markets without a release.
Payments unblocked
Traced a critical Adyen payment integration failure to its root cause and shipped a fix in 2 weeks, against a 6-month vendor estimate.
Monitoring and stability
Set up Azure App Insights dashboards and alerting, and fixed the backend errors that were silently hurting the experience.
Design system with three token layers
Built the app's design system on primitive, semantic and component tokens, so a brand or theme change flows through every screen from one place.
Test-driven, end to end
Followed test-driven development for new work, backed by end-to-end tests over the critical customer journeys.
Releases and rollout
Owned the release strategy, feature planning and phased rollouts. Builds, tests and store releases ran through Fastlane and GitHub Actions, with safer rollbacks.
How I worked
Hands-on lead
About 85% of my time went into writing code. The other 15% went into collaboration and communication across teams.
Stakeholder negotiation
Worked with product and business stakeholders to agree scope, trade-offs and timelines for each feature.
Lebara Travel eSIM
A new product built solo: travellers buy and install a data eSIM inside the app, with no physical SIM and no roaming surprises.
Native eSIM bridges
Custom Swift and Kotlin modules exposing iOS CoreTelephony and Android eSIM provisioning to React Native through one JavaScript API.
GSMA RSP provisioning
Activation-code flow against the SM-DP+ server: download, install, enable and disable, with every failure state handled.
Provisioning as a state machine
Payment, download, install and activation modelled in XState, so a failed step retries from where it stopped, not from the start.
Built for travellers
Multi-currency checkout with cards, Apple Pay and Google Pay, and offline-first profile caching for patchy connections.
Stack
- React Native
- TypeScript
- Swift
- Kotlin
- Adobe AEM
- Adyen
- Azure App Insights
- XState
- GSMA RSP
- Fastlane
- GitHub Actions
- Cloudflare
Working on something at this scale?
Tell me what you're building. I read everything and reply myself.
Tell me what you're building