2025
Fleet Tracking Dashboard
Gave a logistics team real-time visibility into vehicle location and delivery status instead of relying on manual phone check-ins.
Role
Full-stack Engineer
Status
Production
Context
A logistics team was tracking deliveries by phone call and spreadsheet, which made it hard to know where a vehicle was at any given moment or explain delays to customers.
My responsibility
Owned the project end-to-end: data model, ingestion API, dashboard UI, and the server it runs on.
Constraints
Drivers had inconsistent phone connectivity, so the system had to tolerate delayed or out-of-order location updates without corrupting the live view.
System
Engineering decisions
Buffered ingestion instead of direct writes
Location pings are queued and processed in order per vehicle, so late-arriving updates don't overwrite newer state.
Server-sent events over WebSockets
The dashboard only needs one-way updates, so SSE kept the infrastructure simpler than a full WebSocket layer.
Problems encountered
Duplicate location pings under poor signal
Retried requests from the driver app occasionally created duplicate pings, briefly showing a vehicle jumping between two points.
Solution
Added an idempotency key per ping on the client and de-duplicated on ingestion before it reached the queue.
Result
[Add measurable result once available]
Technology
React, Node.js, PostgreSQL, Docker, Nginx
Reflection — what I learned
Building for unreliable networks up front saved a lot of rework later — most of the hard bugs came from timing and ordering, not the UI.
Behind the build
Originally deployed as a single Node process on a small VPS. Split the ingestion worker out once dashboard traffic and location processing started competing for the same event loop.