Design a Mobile Bike-Share / Scooter Rental App

Updated · techinterview.org

“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

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

BLE vs LTE

  • With BLE proxy unlock, the phone connects to the vehicle via BLE and the app commands unlock. It works in dead-zones and is faster.
  • With LTE direct, the vehicle has its own LTE and the server commands it directly. This is independent of phone signal but the 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

  • User taps “End ride”
  • App commands lock
  • If in restricted zone: warn user before allowing end-ride
  • Photo confirmation (regulated cities require parking-photo proof)
  • Calculate fare, charge user
  • 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, so 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.

newsletter

What's actually being asked right now

Interview patterns & comp trends, straight to your inbox.

No spam. Unsubscribe anytime.

newsletter

What's actually being asked right now

Interview patterns & comp trends, straight to your inbox.

No spam. Unsubscribe anytime.

1972 Soviet postage stamp commemorating the Mars 2 probe

worth a read

Mars For The Rest of Us — a weekly-or-more deep dive on the technical side of Mars exploration: rocket propulsion, microbiology, mission architecture, and everything in between. Written by Maciej Ceglowski.

Read it on Substack
Scroll to Top