I recently built a high-performance online coding platform designed to handle large user traffic — from code execution to problem uploads and real-time output.
⚈ Turborepo monorepo
⚈ Node.js Backend + React Frontend
⚈ AWS EC2 for Judge0 execution layer
⚈ AWS Load Balancer to distribute execution load
⚈ NeonDB (PostgreSQL) for scalable storage
⚈ Redis Queue + Redis Pub/Sub for job distribution & real-time events
⚈ Workers for parallel code execution
⚈ WebSockets for instant output delivery
⚈ Admin Panel to upload and manage coding problems
1. User submits code
2. Backend stores metadata in NeonDB
3. Job enters Redis Queue
4. Multiple Workers pick tasks
5. Workers send execution requests to AWS Load Balancer → Judge0 servers
6. Judge0 returns stdout/stderr
7. Worker saves result in NeonDB
8. Worker triggers Redis Pub/Sub event
9. Backend sends output to user through WebSockets
⚈ Horizontal scaling with multiple Workers
⚈ Load-balanced Judge0 servers
⚈ Event-driven architecture
⚈ Admin can upload/manage problems dynamically
