Logistics & Last-Mile FleetTeam Lead, Android & Systems

Intra-City Logistics Dispatch and Driver Matching Engines

Re-architecting driver vehicle apps and payment systems for one of India’s largest intra-city logistics networks.

COMPANYPorter
LEADERSHIP ROLETeam Lead, Android & Systems
TIMELINEMar 2020 – Nov 2021
LOCATIONBengaluru / Noida, India

01 The Business Situation

Porter powers on-demand logistics for intra-city truck and two-wheeler freight across major Indian metros. Real-time matching between shippers and nearby drivers is latency and battery critical.

02 What Was Broken

Legacy MVP code in React Native suffered from memory leaks, UI jank during navigation, and aggressive battery drain from unoptimized GPS polling.

Driver payment settlements and trip training platforms were fragmented across external tools with no direct reconciliation against the supply-chain matching core.

Frequent offline periods in dense urban corridors caused driver status desync and dropped booking dispatches.

03 What I Decided & Why

DECISION 1

Migrated driver and owner apps to native Kotlin with RIBs architecture

Architectural Rationale:

Decoupled state management from view hierarchies, enabling continuous feature delivery, zero background memory leaks, and resilient offline state sync.

DECISION 2

Engineered backend payment and training platforms in Java / Spring Boot

Architectural Rationale:

Created idempotent billing and payout microservices integrated directly with the core supply-chain dispatch engine.

DECISION 3

Implemented battery-efficient geofencing and GPS telemetry filtering

Architectural Rationale:

Replaced continuous GPS streaming with velocity-based adaptive polling, preserving driver device battery throughout 10-hour shifts.

04 Measurable Results

< 0.05%Driver App Crash RateSource: Measured post-migration to Kotlin RIBs architecture
Real-timePayment Payout ReconciliationSource: Integrated Spring Boot payment services with supply chain core
ContinuousFeature Delivery VelocitySource: Standardized release trains and decoupled architecture

05 Lessons for Startup Founders

  • In driver and field apps, battery life is your retention metric. If your app kills the driver phone battery before 2 PM, they will turn off location tracking.

  • Decouple business logic from UI routing using RIBs or clean architecture. It prevents mobile rewrites when product teams re-imagine onboarding.

  • Build idempotent payment settlement endpoints from Day 1. Unhandled retries in mobile networks will cause duplicate payouts or angry drivers.

06 Technologies Used

KotlinRIBs ArchitectureJavaSpring BootHibernateGeospatial TelemetryREST APIs

WORK WITH UMESH GUPTA

Ready to scale your architecture
without expensive trial and error?

Book a 20-minute call to evaluate your engineering bottlenecks. Response: Reply the same business day (IST).

WhatsApp (+91 9717486696)