Skip to content
← Back to work

Logistics · Mobile Architect · 2018

Yojee Logistics

An ASX-listed logistics platform whose driver app was failing in the field. I redesigned the mobile architecture, delivering a 50% performance improvement and 80% fewer crashes.

Performance boost
50%
Fewer crashes
80%
Live tracking
Real-time
Battery life
Full shift

The problem

The driver app was the product. Drivers used it for an entire shift, on mid-range Android devices, in areas with patchy signal. It was crashing, draining batteries before the shift ended, and reporting positions that were minutes stale.

Monolithic state management meant every screen re-rendered on every location update. Dispatchers could not trust the map, so they went back to phoning drivers.

What I did

I rebuilt the state layer as modular slices so a location tick only touched the components that cared about it. Live tracking moved from polling to WebSockets, which cut both latency and radio wake-ups.

Geolocation was rewritten to be battery-aware: adaptive sampling rates based on speed and movement, rather than a fixed high-frequency poll running all shift.

What happened

Crashes dropped by 80% and overall performance improved by roughly 50%. Batteries lasted a full shift, and dispatchers started trusting the live map again, which was the actual point.

I love working with Hau. He was willing to help out on very short notice and contributed hugely to the success of the project.
Jens · VP of Engineering, Yojee

Built with

React NativeWebSocketsGeolocationReduxTypeScript

Have a project that looks like this

A 30-minute call. I'll tell you what I'd do first, what it costs, and how long it takes.

Book a call