Design a Mobile Bike-Share / Scooter Rental App

“Design Lime / Bird / Citi Bike” is a senior+ mobile system design that combines geographic discovery, IoT unlock-and-lock, real-time ride tracking, payment, and the regulated reality of city-permitted micromobility. The interview tests how you handle a hardware + software product with city-level operational constraints.

Clarify scope

  • Dockless (Bird, Lime) or docked (Citi Bike, Capital Bikeshare)?
  • Bikes only, scooters only, or both?
  • Subscription / membership tier?
  • Multi-city or single-city?
  • E-bike with battery (range / charging)?

Vehicle discovery

  • Map-centered home view with vehicle pins
  • Tap a pin: details (range, ID, price)
  • “Reserve” with a 10-min hold for the user to walk to it
  • Filter by vehicle type, battery range
  • Surge / dynamic pricing visible at the pin level

Map rendering

  • Mapbox / MapLibre / Apple Maps / Google Maps SDK
  • Vector tiles for fast pan/zoom
  • Vehicle pins clustered when zoomed out
  • Geofences shown for no-park / slow zones

The unlock flow

  1. User scans QR code on the vehicle (or enters ID)
  2. App requests unlock from server
  3. Server commands the vehicle (BLE via the app proxy, or LTE direct)
  4. Vehicle unlocks; ride starts
  5. App tracks location, speed, time

BLE vs LTE

  • BLE proxy unlock: phone connects to vehicle via BLE; app commands unlock. Works in dead-zones; faster.
  • LTE direct: vehicle has its own LTE; server commands directly. Independent of phone signal but vehicle needs reception.
  • Most modern apps support both for reliability

Ride tracking

  • GPS samples every 5–10 seconds
  • Background location with high accuracy required during ride
  • Battery awareness: drop frequency on idle / parked
  • Encode the path; server may use it for analytics or pricing zones

End-of-ride

  1. User taps “End ride”
  2. App commands lock
  3. If in restricted zone: warn user before allowing end-ride
  4. Photo confirmation (regulated cities require parking-photo proof)
  5. Calculate fare, charge user
  6. Ride summary screen

Geofences

  • No-go zones (e.g., parks, sidewalks): vehicle slows or alerts
  • No-park zones: cannot end ride here without penalty
  • Parking zones: must end ride here (some cities)
  • Server pushes zone updates to vehicles and app

Payment

  • Apple Pay / Google Pay first; saved cards as fallback
  • Pre-authorize $10 hold at ride start; capture actual fare at end
  • Subscription / membership: prepaid; ride deducts
  • Receipt emailed and in-app

Safety

  • Helmet reminder at ride start
  • Speed limits enforced via vehicle firmware
  • Crash detection (sudden deceleration triggers check-in)
  • Group rides (multiple vehicles to one account) increasingly common

City compliance

  • Per-city permit dictates: vehicle count, geofences, operating hours, helmet rules
  • City data feeds (GBFS / MDS standards) for live vehicle and ride data
  • SOC 2 / privacy compliance for shared user data
  • Some cities require ride-start photos, ID verification, or insurance

Membership / subscription

  • Per-month or per-year unlimited or capped rides
  • App Store / Play Store IAP integration
  • Auto-renew with reminder

Reservation and parking discovery

  • “I am 5 minutes away — hold this vehicle”
  • Reservation timer counts down
  • If user doesn’t arrive, vehicle returns to pool
  • Reservation cost (some apps charge a small reservation fee)

Notifications

  • “Your reserved vehicle is around the corner”
  • “You are entering a no-park zone”
  • “Ride summary”
  • “Bike returned” (if ended remotely / lost)

Operations features

  • Worker app for chargers / repositioners
  • Battery / health monitoring per vehicle
  • Real-time fleet ops dashboard
  • Customer-found-issues reporting

Privacy considerations

  • Ride paths can re-identify users — handle carefully when shared with cities (MDS standard has been controversial)
  • Aggregate / anonymize before sharing
  • Per-user preferences for location precision

Edge cases interviewers love

  • Vehicle goes offline mid-ride — keep tracking from app, reconcile on reconnect
  • User ends ride in restricted zone — small fine + clear messaging
  • BLE pair fails — fallback to LTE
  • User’s phone dies mid-ride — vehicle may auto-lock after timeout
  • Vehicle stolen — geofence alert, cellular tracking (most have it)

What separates senior from staff

Senior candidates draw the unlock-and-track flow. Staff candidates discuss the BLE-vs-LTE redundancy, geofence enforcement, and city-compliance integration. Principal candidates raise the multi-tenant city-permit operational reality, the dispute / fraud handling, and the privacy posture for city data sharing.

Frequently Asked Questions

What is GBFS / MDS?

Open standards for sharing vehicle and ride data with cities. GBFS (General Bikeshare Feed Specification) for live vehicle data; MDS (Mobility Data Specification) for ride data. Many cities require compliance.

How do I handle two vehicles unlocked by one user?

Most apps allow it (ride buddy). Cap concurrent rides; require enrollment. Each ride tracked separately; payment per ride.

What about helmet detection?

Bird and others tested ML detection of helmet via the unlock photo. Imperfect; not yet a standard requirement. Some cities legislate helmets; enforcement is policy + spot checks.

Scroll to Top