We ship a single Flutter app. Customer, partner and driver are surfaces inside it, chosen by role, which keeps one codebase honest instead of letting three drift apart.
The driver surface is the hard part and the interesting one. It runs in the background, reports location during an active ride, receives dispatch offers that expire, and has to behave when the network does not. Getting that right on both platforms is most of the job.
What you would do
- Build and maintain the Flutter app across customer, partner and driver surfaces
- Own the driver experience: background location, push-delivered ride offers, offline tolerance and battery cost
- Work with Riverpod and go_router in a package-per-concern workspace
- Move the app onto generated ConnectRPC clients and off the remaining hand-written HTTP services
- Ship through the App Store and Play Console, including the release gates and versioning runbooks
What we are looking for
- Production Flutter and Dart experience — apps you can point at in a store
- Comfortable in native Android and iOS when Flutter runs out: permissions, background execution, push
- You test on devices, not only on simulators, and you read the logs while you do it
- Sound judgement about battery and data cost in a foreground-service app
- Professional English, written and spoken
Nice to have
- Riverpod, go_router, Melos workspaces
- Firebase Cloud Messaging and APNs in anger
- Maps and geolocation work
How we hire
- 1. Your application. CV plus a short note. We read it; it is not filtered by a keyword matcher.
- 2. A conversation. Forty minutes about what you have built and what you want to build.
- 3. Real work. A problem from this codebase, discussed together. Not a whiteboard algorithm, and not an unpaid weekend project.
- 4. Offer. With the reasoning, in writing.