Real-time systems
that keep moving.
Modernized a legacy ride-hailing backend with event-driven flows and a WebSocket layer for real-time ride tracking.
- Role
- Full Stack Engineer
- Company
- Kevych Solutions
- Tech
- Node.js / NestJS / WebSockets
Scroll to explore
01
Overview
Modernizing a real-time ride-hailing backend.
I worked on the modernization of a legacy taxi ride-hailing backend, leading an event-driven refactor and introducing a Node.js WebSocket layer for live ride tracking.
02
The problem
A legacy system slowing down product development.
Too much engineering time was being spent reacting to production issues instead of building new product functionality. The existing backend had become difficult to evolve reliably.
The challenge went beyond adding live tracking. The system needed clearer real-time behavior that could support ongoing development.
03
The approach
Moving toward event-driven flows.
I led a refactor of the backend toward an event-driven model and added a Node.js WebSocket layer to deliver live ride-tracking updates to connected clients.
The flow below is a conceptual explanation of real-time updates, rather than an inventory of internal architecture components.
Ride state
- A ride changes state
Backend event
- The backend handles the change
WebSocket layer
- Node.js delivers the update
Real-time update
- Live tracking information
Client
- Connected clients receive the update
04
What I built
My contribution.
- Event-driven refactor
- Led the modernization of the legacy backend toward event-driven flows, making its real-time behavior easier to reason about and extend.
- Real-time tracking
- Added a Node.js WebSocket layer enabling live ride tracking and real-time communication with connected clients.
- Production stabilization
- Worked through legacy backend constraints and recurring production issues as part of the modernization.
- System ownership
- Worked across architecture and implementation, treating tracking as part of the backend system.
05
Engineering decision
Real-time as part of the architecture.
Ride-state changes needed a path through the backend that could reach connected clients as they happened.
Event-driven flows and a WebSocket layer created that path while supporting the modernization of the surrounding legacy system.
06
Impact
From firefighting to forward motion.
The modernization helped shift the team's engineering work away from repeatedly firefighting legacy backend issues and toward shipping new product features.
07
Technology
- Node.js
- NestJS
- WebSockets