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-upCode 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
- Click "Open the JavaScript editor" — the session is created with sample code, which you can delete or change to fit your task.
- Describe the problem in Markdown and send the link to the candidate: they need no sign-up.
- 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.