Open-source online judge
NOJV
An open-source online judge I founded and maintain. I designed everything from problems, courses, and contests to the sandbox, judge scheduling, and Kubernetes releases, and 300+ students use it in live courses, with up to 100 online at once and 2,000+ submissions so far.
- 01
Judge scheduling: replacing a custom coordinator with Temporal's native priorities
In a load test, 100 submissions were all AC within 243 seconds; after deleting the pods of Temporal's 4 component types one by one, 32 submissions were still all AC with no lost work.
- 02
Sandbox: measuring time and memory accurately
An empty program now measures 0.98 ms, and the memory-limit smoke test went from about 1/3 failing to 6/6 passing. I later restricted IPC with seccomp and cleared scratch space before and after each test case, closing state leaks between test cases within a stage.
- 03
Release and reliability
SvelteKit · TypeScript · Tailwind CSS · Monaco Editor · Temporal · PostgreSQL · Prisma · Redis
Read the case study →













