Project

ReCharge

Power bank sharing: machines, app and cloud

Overview

ReCharge lets people in Indonesia rent a power bank from a vending machine with their phone and return it at any other machine. I worked on the Flutter app, the TypeScript and Rust services on AWS, and the integration that unlocks slots on the machines.

The interesting part is state: a battery is either in a machine, in a user's hand or lost, and every transition has to be right even when the machine's connection drops.

Highlights

  • Flutter app on iOS and Android with rental, payment and machine map flows.
  • Rust and TypeScript services on AWS for rentals, machine telemetry and payments.
  • Machine protocol integration with retry and reconciliation for offline kiosks.

Links