End-to-end product engineer. Battle-tested at 7+ banks.
Built real-time systems for major Indonesian banks (Mandiri, Bank Raya, CIMB Niaga, Nobu, and many more). Handled high-frequency trading data with 10K updates/sec.
The Problem
Major Indonesian banking systems needed to display real-time market data across multiple instruments while maintaining responsive UI interactions. The existing systems had monolithic backends that couldn't scale, frontends that dropped frames during high-volatility periods, and no clear deployment strategy.
Constraints
Data updates arrive via WebSocket at up to 10,000 messages/second
UI must remain responsive for user interactions at all times
Backend must handle 50+ simultaneous data streams per client
Zero-downtime deployments required for 24/7 trading
Technical Decisions
Frontend
- Implemented message batching that groups updates within 16ms frames
- Used React.memo with custom comparison functions for price cells
- Built virtual scrolling for large instrument lists
- Created a priority queue - watched instruments get immediate renders
Backend
- Designed a Node.js WebSocket gateway that fans out market data
- Implemented Redis pub/sub for horizontal scaling of WebSocket servers
- Built a rate-limiting layer to protect downstream services
- Created health check endpoints with circuit breaker patterns
Infrastructure
- Containerized with Docker for consistent dev/prod environments
- Set up Kubernetes deployment with rolling updates
- Implemented blue-green deployment for zero-downtime releases
- Added Prometheus metrics and Grafana dashboards for monitoring
Trade-offs Made
- !
Accepted minor staleness (up to 16ms) in favor of consistent frame rates
- !
Chose Redis over Kafka for simplicity - sufficient for current scale
- !
Added infrastructure complexity but gained operational reliability
Outcome
Reduced frame drops by 94% during peak trading. Backend handles 3x traffic spikes without degradation. Deployment time reduced from 2 hours to 15 minutes with zero downtime. Deployed across multiple Indonesian banking institutions.
Interested in discussing this project or similar challenges?
Get in touch