Chaos Compiler
A campus coding competition in the browser: a qualifier for every student, then a live finale where a rival sabotages the coder's screen.
The code is private for now
Tech stack
- React
- Vite
- Monaco Editor
- Node.js
- Express
- Socket.IO
- SQLite
- Roslyn
- acorn
- java-parser
- Docker
- Caddy
- Oracle Cloud
My part
I organised and ran the tournament in September 2026, and I'm putting the platform together myself, with the DevOps layer as the part I most wanted to learn.
What it does
- A qualifier where every student solves a problem in their course's language: JavaScript, Java or C# depending on year group
- Code must pass every hidden test to score. Points then come only from useful constructs: each if, loop or function is removed and the tests re-run, so only the ones the solution needs count.
- A finale where the top student from each year codes live on a projector, through levels with a twist and a surprise bonus, with some built-in shortcuts banned
- Sabotage from a touchscreen, such as a flashbang, blur or a switch to Comic Sans, limited by an energy bar, cooldowns and shields
- Anti-cheat: fullscreen and focus tracking with warnings then penalties, and a paste guard that alerts the organisers
- Organiser tools: a server-controlled clock, a live roster, spectating any student's code, judge review, re-grading and a problem editor
How it works
- Socket.IO carries the timers, sabotage, live view, alerts and projector, so every screen stays in step.
- JavaScript runs in Node, Java through the Java compiler, and C# on a pool of ready-to-go Roslyn compile servers. Each language has its own parser to find the constructs.
- A grading queue runs four graders at once, and results are revealed to everyone at the same moment.
- Runs in Docker with Caddy for HTTPS on Oracle Cloud, with SQLite as the database.
- Load-tested with 100 students on the live server and 400 locally, plus an 82-check automated finale simulation, a sabotage practice bot and unit tests for all 12 problems.