Waze — GPS Navigation Engine
Systems · C2025
- Built a 3-tier concurrent TCP server in C: accept thread → per-connection client threads → lock-free A* routing workers (C11
_Atomicreads, zero contention) + EMA traffic workers (64-stripe mutexes) over the real Tel Aviv OSM road network (~6,500 nodes, ~13,000 edges). - Implemented A* pathfinding with a flat binary min-heap and per-worker pre-allocated
RouteContextscratch space (generation counter for O(1) resets, no per-call allocation); added hierarchical section routing — a precomputed 5×5 hub-to-hub grid stitched with concurrent per-car segment routing for fast batch requests. - Modeled congestion physics for up to 30,000 simulated vehicles with per-class speed degradation; benchmarked 11.27× throughput scaling to 16 workers (362.5 → 4,087 ops/s, p50 13.3 ms) on a 16-core machine.
- Built a full-stack web UI with a Python HTTP↔TCP bridge and Leaflet.js live map showing car positions and congestion overlays; deployed the entire stack via Docker Compose.
C
Python
C11 Atomics
Lock-Free
TCP/IP
A* routing
Hierarchical Routing
OpenStreetMap
Leaflet.js
Docker