Online JavaScript Code Editor for Interviews

A shared JavaScript editor behind a single link: you and the candidate write code together, run it on Node.js, and see the output right away. Suited for front-end and back-end interviews in plain JavaScript. Free and no sign-up.

Free, no sign-up

Code sample

function debounce(fn, ms) {
  let timer;
  return (...args) => {
    clearTimeout(timer);
    timer = setTimeout(() => fn(...args), ms);
  };
}

const log = debounce((msg) => console.log(msg), 100);
log('a');
log('b'); // prints only "b"

Output

b

What the editor does

  • Node.js 20: the code runs on the server in an isolated sandbox, and every participant sees console.log output and errors.
  • Real-time collaborative editing: up to 5 participants, with edits and cursors visible instantly.
  • The problem statement is written in Markdown right in the session, next to the code.
  • Autotests: the task's unit tests run from the session, and you can see how many of them passed.
  • You can switch to TypeScript in the same session — it is in the editor’s language list.
  • After a free sign-in: a task bank, an interview mode with timers, candidate scoring, and interview history.

How to run the interview

  1. Click "Open the JavaScript editor" — the session is created with sample code, which you can delete or change to fit your task.
  2. Describe the problem in Markdown and send the link to the candidate: they need no sign-up.
  3. Discuss the solution as you go: the candidate runs the code, and you both see the output and errors. Async tasks are easy to verify right from the output — the order of console lines shows everything.

Typical interview tasks

  • Implement debounce and throttle and explain how they differ and where each is used.
  • Write your own version of Promise.all: results in the original order, rejecting on the first error.
  • Predict the output order with setTimeout, Promise, and queueMicrotask — the classic event-loop question.
  • Closures in a loop: why var and let give different results, and how to fix it without let.
  • Deep comparison or deep cloning of objects without third-party libraries, including nested arrays.
  • Flatten a nested array without Array.prototype.flat — using recursion or a stack.

Limitations

  • The code runs in Node.js, not in a browser: the DOM, window, and an HTML or React preview are unavailable.
  • No keyboard input — provide data in the code.
  • A single run is limited to 3 seconds and 64 KB of output.

FAQ

Which version does JavaScript run on?
Node.js 20. The code runs on the server, so behavior is the same for every participant.
Can I test DOM or React problems?
No: the session has no browser environment or preview. Plain-JavaScript tasks work well for front-end interviews — closures, promises, the event loop, and working with arrays and objects.
Are there autotests?
Yes. If the task has unit tests, you can run them from the session and see how many passed. The task bank and your own tasks with tests are available after a free sign-in.
Is TypeScript supported?
Yes, TypeScript is in the editor’s language list: you can pick it in the same session.

Editors for other languages