NewLive pair coding: one link for the candidate, one shared sandbox for everyone.See it ↓

Real environments

The services the job runs on. Described in one file.

Seven languages at pinned versions, PostgreSQL and Valkey inside the sandbox, and multi-service apps defined in one kendor.yaml. What the candidate runs is what the grader runs.

01

Seven languages, pinned. Several at once.

Each challenge pins its language versions in kendor.yaml, so a screen written in March grades the same in October. Add other languages beside the main one, the way a real backend and frontend sit together.

Versions offered today

  • Node.js / TypeScript22
  • Python3.12
  • Go1.27 · 1.26
  • Java21
  • Rust1.98
  • C++ (Clang)23
  • PHP8.4 · 8.3

02

Databases inside the sandbox, clean for every grade.

PostgreSQL and Valkey (Redis-compatible) run next to the candidate's code, seeded from your SQL. Every grade starts from an empty database and your seed, so nothing a candidate left behind affects the result.

  • Apps read DATABASE_URL and REDIS_URL, already set in every process
  • Started before installs, in the editor and when grading

03

Candidates can extend it. The foundations stay yours.

A candidate can add a service or a route if their solution needs one, a worker for a queue, say. The runtime, the databases, the sandbox and the grading stay exactly as the author set them.

  • Install, services, preview and routing apply after a sandbox restart
  • Tests a candidate writes into kendor.yaml are dropped; grading runs yours

04

Docker, Compose and Kubernetes for platform roles.

For platform and DevOps hiring, the sandbox can run its own Docker daemon with Docker Compose, or a single-node k3s cluster with kubectl and helm. These are reviewed or live challenges: a person reads the work, and Kendor doesn't auto-grade it.

Enterprise

How it works

One file describes the whole environment.

  1. Write or import kendor.yaml

    Languages, databases, services, install steps, routing and preview, in a form or as raw YAML. Repo import fills in a first version from the project's files.

  2. Try it as a candidate

    Open the sandbox in the challenge editor, watch the services come up and run the tests.

  3. Publish the screen

    Every candidate boots from the setup saved with the challenge, at the versions it pins.

Questions

Is Valkey a drop-in for Redis?

For screens, yes. Valkey speaks the Redis protocol, so standard Redis clients connect to it unchanged, and REDIS_URL is already set.

Can a candidate change the language version?

No. The runtime, other languages, databases and sandbox belong to the author. Candidates can change how their own code installs, starts and is routed — add a service, a worker, a route — and grading always runs the author's tests.

Are Docker and Kubernetes challenges graded?

Not automatically. They run as reviewed or live challenges on the Enterprise plan; reviewers look at the work and record a verdict.

Is each candidate isolated?

Yes. Each one runs in their own locked-down container on dedicated sandbox servers, with internet for package installs but no access to Kendor's network or to other candidates. Grading re-runs with the network cut.

Which frameworks have starters?

React with Vite, Express with PostgreSQL and Valkey, Laravel, Flask, FastAPI, Go net/http, Spring Boot, Rust axum, a C++ CMake project, a mixed Java + Go + C++ service set, and single-file starters for every language.

More of Kendor

All features

Run your next screen on Kendor. Read what the code says.

Kendor works with engineering teams in the EU, the UK and the US. Tell us what you're hiring for and we'll set up your organization with you.