The lab

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.

React, Node.js, Socket.IO, SQLite, Docker, Oracle Cloud

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.