Your interview
in 7 days
Today
- Quiz · React Hooks, Hard10 q
- Challenge · debounceMedium
- Review · mistakes due6 cards
For frontend & fullstack developers
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
React Hooks · Question 1 of 3
const [n, setN] = useState(0);
useEffect(() => { setN(1); }, []);
console.log(n);function flatten(arr) {return arr.reduce((acc, item) =>Array.isArray(item)? acc.concat(flatten(item)): acc.concat(item), []);}
Interview booked?
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
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
1,300+ job listings for your stacks. Found one? Build the plan from its stack in a click.
Browse jobs →No interview in sight
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
Project
mini-redux
step 4 / 9
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
After each submission: the complexity, the edge case you missed, and a more idiomatic version written from your code.
function firstUnique(s) {for (let i = 0; i < s.length; i++)if (s.indexOf(s[i]) === s.lastIndexOf(s[i]))return s[i];return null;}
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
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.
No. The editor, the tests and the projects all run in the browser.
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.
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.
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.
Pick a door. You are writing code in the browser a minute later.
7 days of Pro free · No credit card