Back to Projects

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.

TypeScriptWebSocketRedisKubernetes

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.

1

Data updates arrive via WebSocket at up to 10,000 messages/second

2

UI must remain responsive for user interactions at all times

3

Backend must handle 50+ simultaneous data streams per client

4

Zero-downtime deployments required for 24/7 trading

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
  • !

    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

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