Online programming platform

CodeJudge

A full-stack online judge with sandboxed multi-language execution, resource limits, real-time leaderboards and AI-powered problem generation. Dockerized, with unit, integration and load tests.

Stack
  • Node.js
  • Next.js
  • Docker

Fig. 1 · Judging a submission

Simulated

Problem A A + B

Given two integers a and b with |a|, |b| ≤ 2·10⁹, print a + b.

time limit 2 s · memory limit 256 MB · 6 tests

solution.cpp C++17 read-only sample

#include <bits/stdc++.h>
using namespace std;

int main() {
    long long a, b;
    cin >> a >> b;
    cout << a + b << "\n";
}
  1. Queued
  2. Compiling in a sandbox
  3. Running against tests
  4. Verdict
Time limit 2.0 s
·
Memory limit 256 MB
·

Pick a version of the code to submit and watch how the judge handles it.

Simulated. Pre-written code, states and numbers. Nothing is compiled or run in your browser, and no real leaderboard data is shown.

Why build a judge

I’ve solved more than 1,500 problems on other people’s judges, so I wanted to build the other side: take untrusted code, run it safely under limits, and return a verdict people can trust.

What I built

  • Sandboxed execution in several languages. Submissions run isolated from the host.
  • Resource limits. Each run is capped, so a runaway submission gets a verdict instead of taking the server down.
  • Real-time leaderboards for contests.
  • AI-powered problem generation.
  • Docker packaging for scalable deployment.
  • Unit, integration and load tests.

About the demo above

The submission lifecycle in the figure is a simulation and runs no code. Each sample plays back pre-written states (queued, compiling, running against tests, verdict) to show what a judge does with a submission.

Site index