Work

Don't take my word for it. Take theirs.

Seventeen years of mobile, for an airline, banks and a payments giant, the country's biggest broadcasters and its largest retailer — and the start-ups trying to unseat them. Below: the companies, the apps, the press, and three engagements told in full.

Companies, start-ups to corporates
30
Deliverables, POC to handover
45
Platforms, mobile to services plus more
10

Some companies I've worked with

Some products I've worked on

Some outlets that featured my work


Some engagements I've led

Three engagements, three ways of working: building a payment module inside a bank's live app, leading a start-up's team from React Native into native and through a six-week MVP, and running the team behind the iPad app KLM ground crews use at 180 airports. Each in the same shape — the situation, what I did, what changed.

01Build & integrateBanking & payments2024–2516 months

A payment feature built to ship across countries from one module

Situation

One of Europe's largest banks wanted a new payment feature inside its live iOS app: configurable per country, flexible enough to take on further features, identical in experience to Android, and delivered by a small team inside a live codebase.

What I did

Owned the iOS side end to end. Designed the module to be reusable across markets and pluggable into the app's architecture, then built two iterations of it in Swift and its latest frameworks — SwiftUI, Concurrency and Observation — covering onboarding, profile and the full payment-card lifecycle. Agreed the architecture with the Android and BFF engineers so business logic is implemented once, in the right layer; sharpened requirements and designs with product and design as the feature took shape; and raised the bar for the wider iOS chapter on SwiftUI adoption, bi-directional UIKit–SwiftUI interoperability and documentation.

Outcome

Module released, on schedule
1
Iterations shipped, each a distinct experience
2
Countries: Belgium and Italy
2
02Lead & buildRetail & loyalty2018–1910 months

Native depth for a React Native start-up — and a second app in six weeks

Situation

Tessa, a Unilever-backed start-up, had a React Native app and four developers with limited mobile experience. The roadmap asked for payments, push, deep links and analytics — the parts React Native alone doesn't give you — plus a redesign and a release pipeline that could keep up. Then the business gave the team six weeks to turn a hackathon idea, Vink, into a shippable MVP.

What I did

Led the team as lead mobile developer and owned everything native. In Tessa: built the iOS and Android components and their bridges — Adyen payments, push via Segment, Mixpanel and Firebase, Firebase deep linking and forced updates, Instabug — and shipped the new onboarding and sign-in, a shop with categories, filters and search, and the reworked dashboard, promotions, profile, history and receipt scanning. Around it: redesigned the app with product and design, set up analytics with growth and backend across Segment, Mixpanel, Adobe Analytics and AppsFlyer, migrated React Native 0.54→0.59, refactored the navigation stack, added accessibility for automated testing, and rebuilt CI/CD on GitLab and Fastlane so builds reached QA and both stores without ceremony. In Vink: chose the stack with the team, set up certificates, beta and release stores and an AppCenter pipeline, scripted the dev tasks, built the shopping-list feature end to end, supervised onboarding, sign-in, search and profile, and shipped the MVP on the deadline with Mixpanel and SmartLook analytics baked in. Inside the team: standards, pairing, reviews and unit tests as the default, and coached the four developers into native.

Outcome

Engineers led, and coached in native
4
Native SDKs bridged into React Native
5
Weeks from hackathon to MVP
6
03Lead & shipAviation2016–182 years

The iPad app KLM ground crews at 180 airports run the day on

Situation

KLM's enterprise iPad app for Passenger Operations is how ground crews at 180 airports find a flight, a passenger or a bag, book a lounge, rebook a delay and take a payment. A team of four maintained and released it — along with all the related shared iOS frameworks other KLM enterprise apps were built on. When I joined, both were still in Objective-C.

What I did

Led the team from the crews' requirements to release. In the app: shift onboarding and location tracking, flight and passenger search across SkyTeam, baggage lookup by boarding card, bag tag or passport, lounge queueing, check-in, upgrades and rebooking, last calls by SMS, email and WhatsApp, and an Adyen point-of-sale. Around it: coordinated feature definition and delivery with teams across the company, owned the related shared iOS frameworks and their design strategy with the architects and API teams, built the company-wide login framework, and co-led the move of 200,000+ lines of Objective-C — apps and frameworks alike — to Swift 2 in three weeks, half the estimate, then on to Swift 4. Inside the team: made coding standards, pairing, reviews and unit tests the default, and coached juniors and App Academy interns along the way.

Outcome

Engineers led, requirements to release
4
Features shipped to crews at 180 airports
14
Lines moved from Objective-C to Swift, in half the estimated time
200k+

Want a reference from any of these clients, or a CV for your records?

Ask on a call

What clients say

“His ability to explain the nuances of the code in an accessible way was an asset to me during the design process.”
— Product design lead, Dott

Rock & Roll

Something to build, rescue or lead? Let's talk.

Tell me what you're building, where it's stuck, and when you need it.

Available March 2027 · Amsterdam, hybrid or remote

Javier Cicchelli
Javier CicchelliTech lead & software engineer