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.
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";
}- Queued
- Compiling in a sandbox
- Running against tests
- Verdict
- Time limit 2.0 s
- ·
- Memory limit 256 MB
- ·
| Test | Verdict | Time | Memory |
|---|
Pick a version of the code to submit and watch how the judge handles it.
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.