For frontend & fullstack developers

Interview prep for the code you actually write.

Coding challenges with hidden tests in JavaScript, TypeScript, Python, React, Vue and Angular, quizzes on eight stacks, timed mock interviews and an AI mentor that explains every submission. All in the browser.

7 days of Pro free · No credit card · or browse the catalogue first

  • 420+ challenges
  • 730+ quiz chapters
  • 60+ projects
  • 50 guided paths
Try it, no account

React Hooks · Question 1 of 3

What does this log on the first two renders?

const [n, setN] = useState(0);
useEffect(() => { setN(1); }, []);
console.log(n);

Interview booked?

Interview coming up? Get a day-by-day plan to the date.

Give us the date and your stacks. Each day you get a short plan, a mock interview when you are close, and a score per stack that says what is still weak.

Your interview

in 7 days

Today

  • Quiz · React Hooks, Hard10 q
  • Challenge · debounceMedium
  • Review · mistakes due6 cards

Mock interview · React

45 min

84/ 100

3 of 3 accepted. Challenge 2 re-sorts on every call: cache the sorted keys. Edge case missed on challenge 3: empty input.

Readiness

ready at 75

  • React82
  • TypeScript64
  • Vue58
  • Angular71

1,300+ job listings for your stacks. Found one? Build the plan from its stack in a click.

Browse jobs →

No interview in sight

Get better at the stack you already use.

50 guided paths, real projects built against their own tests, quizzes in four tiers, and a deck that brings back what you got wrong.

Guided path

React Fundamentals

week 2 / 6

  • Rendering & reconciliation
  • State beyond useState · you are here
  • Effects & data fetching

Project

mini-redux

step 4 / 9

  • createStore6 / 6
  • subscribe4 / 4
  • combineReducers5 / 5
  • middleware2 / 5

Review your mistakes

6 cards due today

Missed 3 days ago

Which hook keeps a value across renders without re-rendering?

Right again, it comes back in 3, 7, 16, then 35 days. Wrong, tomorrow.

AI mentor

It reads your code, not just the result.

After each submission: the complexity, the edge case you missed, and a more idiomatic version written from your code.

Lines 2-3 · complexity

indexOf and lastIndexOf scan the string inside the loop: O(n²). Count characters once in a Map: O(n).

Line 5 · edge case

The tests expect "" for an empty string, not null. Hidden test 7 failed on this.

Idiomatic version

const counts = new Map();
for (const c of s) counts.set(c, (counts.get(c) ?? 0) + 1);
return [...s].find((c) => counts.get(c) === 1) ?? "";

FAQ

Questions before you sign up.

What is free, and what does the 7-day Pro trial include?

Free covers challenges, learning paths, the first quiz series of every topic and 10 mistake reviews a day. Finish onboarding and Pro opens for 7 days: every quiz series, full mock interviews and the AI mentor. No credit card, and you drop back to Free on its own.

Do I need to install anything?

No. The editor, the tests and the projects all run in the browser.

Which stacks and languages are covered?

JavaScript, TypeScript, React, Vue, Angular, Node.js, Python and SQL, plus NestJS, Next.js and system design at onboarding. Node.js is covered by quizzes. Pick your stacks and the catalogue reorders around them.

How does the AI mentor work?

After a submission it reads your code and explains the complexity, the edge cases you missed and a more idiomatic version. Free accounts get 2 reviews, Pro is unlimited.

Can I use it without an interview coming up?

Yes. Pick "Level up a skill" at sign-up: the catalogue leads with guided paths, projects and quiz tiers instead of an interview plan. You can switch in Settings.

Practise the code your next interview will ask about.

Pick a door. You are writing code in the browser a minute later.

7 days of Pro free · No credit card