01
Jun 2026 — Present
Traintopia - Live NYC Transit
Real-time NYC subway and bus tracking as an Android app: every live train and bus drawn as a 3D vehicle on a map, plus service alerts, trip planning, and a ride-along mode that tells you when to get off. The MTA only publishes positions every 15–20 seconds, so the interesting part is making that look continuous.
- Built a Fastify backend that polls eight MTA GTFS-RT protobuf feeds plus the SIRI and OneBusAway bus feeds on staggered BullMQ jobs, then fans ~3,000 live vehicles out over WebSockets with Redis pub/sub as the only shared state — no database, every key on a TTL.
- Wrote the map's animation loop to interpolate each vehicle between polls and snap it onto the real route polyline, so trains glide along the track instead of teleporting to a new dot every 15 seconds.
- Implemented RAPTOR trip planning over a combined subway and bus timetable, built at boot and patched with live trip updates, returning leg-by-leg itineraries you can then ride through each transfer.
- Shipped a ride-along mode on Capacitor's Geolocation, Haptics, and Local Notifications plugins that tracks your position along the stop sequence and fires at two stops, one stop, and arrival — including with the app backgrounded.
- Added Android home-screen widgets for saved stops and routes, served by batched endpoints and refreshed on WorkManager ticks.
Private repository