International Expansion

After Lyft acquired FREENOW, the goal was one app: a Lyft rider lands in Europe and gets a ride without downloading anything new. I build the roaming backend that makes that ride work end to end, from the offers a rider sees through payment and tracking.

GoPythongRPCPayments
Lyft CEO David Risher on bringing European rides into the Lyft app after the FREENOW acquisition. Post by David Risher on LinkedIn.

By the numbers

12+
European cities live in the Lyft app beta as of Q2 2026
180+
Cities across 9 countries on the network Lyft acquired
2027
Target for one unified global Lyft app
01

The problem

Roaming means one company's rider on another company's network. Nothing lines up for free. Pricing, payment authorization, ride states, notifications, and receipts all have to be translated between two platforms built independently, across currencies and regulatory regimes, and the rider should never see the seam. A ride abroad has to feel like a ride at home or the unified app isn't worth shipping.

02

Approach

The work runs through the whole stack rather than one service: the schema definitions that form the cross-platform contract, the roaming service that owns the translation, the trips layer, the notification path, the GraphQL the app reads, and the dashboards we watch it with. I take features across all of those layers rather than handing off at a service boundary, which is what a rider-visible flow needs to actually land.

03

My contribution

I've built roaming features end to end since the program started, taking each one from the cross-platform schema through to the dashboard we monitor it with.

  • Ride offers and ride creation

    Built the calls that fetch available offers in a European city and create the ride on the partner network. These are the two requests every roaming trip starts with, and the foundation the rest of the features sit on.

  • Payment authorization

    Owned the epic integrating the billing platform's authorization and fraud checks into ride creation, so a ride on a partner network is held to the same payment guarantees as a domestic one.

  • Scheduled rides in Europe

    Owned the epic bringing scheduled rides to EU roaming, including request routing at the edge and the mobile empty states for cities where scheduling isn't offered. Shipped to production.

  • Post-request features

    Past rides, ride status notifications, tipping, and receipt handling are built but not released yet. More on this once they ship.

04

What we built

Request a ride in a European city from the Lyft app you already have

Payment authorized and fraud-checked before the partner ride is created

Scheduled rides, with clear empty states where a city doesn't support them

Post-request features built but not yet released

Lyft goes global: FREENOW acquisition complete, Lyft Blog โ†—

Next

AI-Assisted Engineering

Changing how a backend org works with coding agents: shared context standards, an evaluation to prove they help, and tooling other teams picked up.

Learn more โ†’

โ† All projects