“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
- 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
- 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 — 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.