How this platform works

Your browser does more than you’d think. TCC (Tiny C Compiler) runs client-side via WASM, giving you instant syntax feedback as you type. No server roundtrip needed.

When you hit Run, your code gets saved to local storage and shipped to the backend.

The backend compiles it into a BPF object with clang, then spins up a throwaway VM just for your submission.

The VM

Every submission gets its own ephemeral sandbox:

  • 1 vCPU (ARM64), 64MB RAM
  • Linux 6.1 kernel with full BPF/tracepoint support
  • No network access, complete isolation
  • 2 second lifetime, then it’s gone

VMs boot in under 50ms on bare-metal ARM (Graviton), powered by Firecracker. The guest kernel is stripped down to the essentials, just enough to run BPF programs and nothing more.

The VM boots into a statically-linked init process that mounts the minimum filesystems, loads your BPF object, runs the exercise scenario, and streams results back.

Getting events out

Your code includes ep_platform.h, which sets up a BPF ring buffer map behind the scenes.

The DEBUG_STR, DEBUG_NUM, and SUBMIT_STR macros all write structured events into this ring buffer.

Inside the VM, the init process polls the ring buffer and forwards events to the host over vsock. The host streams them to your browser as SSE (Server-Sent Events) in real time.