Interview bookGroundworkInterview book
3 / 27 written chapters

R1·OA · Part 1 · Before the loop

The online assessment

The only round with no human in it, and the only one you can fail without ever being told. Mid-size product and SaaS loops put this first — before the recruiter call, sometimes before anyone has read your resume. A machine decides, and a cutoff you never see decides again.

7 questions21 follow-ups3 traps6 min read
Length
60–120 min, unattended
Who
Nobody — a platform and a cutoff
Decides
Whether a human ever opens your resume
Fail mode
Both problems half-solved, neither submitted

Everything open, top to bottom.

07On this page
  1. What is the platform actually scoring?
  2. Which language do you pick — and the JavaScript trap in this round.
  3. The MCQ section nobody prepares for.
  4. How do you spend sixty minutes on two problems?
  5. Proctoring: tab switches, the webcam, and the plagiarism flag.
  6. The variants: timed window, certified score, and the 24-hour OA.
  7. You did not hear back. What actually happened?
R1·OA.1

What is the platform actually scoring?

What they are really testingWhether you understand that "it worked on the sample input" and "it passed" are unrelated statements.

Every submission is run against a hidden set — typically fifteen to thirty cases you never see, including the empty input, the single element, the maximum size and one adversarial case built to blow up an O(n²) solution. Three things get scored:

  • Cases passed, usually as a percentage. Most platforms give partial credit — eleven of fifteen is a real score, not a fail.
  • Time limit, per case. A correct brute force on n = 10⁵ does not "run slowly", it is killed and marked failed.
  • Memory limit, which almost never matters unless you are memoising an entire grid.

The consequence is the whole strategy for this round: a submitted brute force scoring 60% beats an unsubmitted optimal solution scoring nothing, and unsubmitted is what happens when you spend fifty minutes on the elegant version.

The answer that loses the room

Running the sample, seeing it match, and moving on. The sample is the easy case, deliberately. If you have not typed in the empty array and the single-element array yourself, you have not tested.

They will push with
  1. Your solution passes the samples and fails four hidden cases. Which inputs do you try first?
  2. n goes up to 10⁵ and your solution is O(n²). Will it pass?
  3. You have eleven of fifteen with twenty minutes left. Keep optimising, or move on?
How did you do?
R1·OA.2

Which language do you pick — and the JavaScript trap in this round.

What they are really testingNothing, but the wrong answer here costs you fifteen minutes you do not have.

Pick the language you will not have to think about. For you that is TypeScript or JavaScript — a round that filters on speed is not the round to prove you know Python.

The trap is input handling. Most platforms hand JavaScript candidates a bare process.stdin and no scaffold, and a real number of people lose the first fifteen minutes to reading input instead of solving anything. Learn this block once and type it from memory:

const lines = require("fs").readFileSync(0, "utf8").split("\n");

let p = 0;
const nextLine = () => lines[p++];
const nextInt = () => Number(nextLine().trim());
const nextInts = () => nextLine().trim().split(/\s+/).map(Number);

const n = nextInt();
const arr = nextInts();

const out = [];
out.push(solve(n, arr));
console.log(out.join("\n"));
2026 note

If the platform offers a language-specific time multiplier, it is usually already applied to JavaScript. Do not switch to C++ for speed unless you write C++ weekly — the syntax cost is bigger than the runtime cost at this level.

Two more JavaScript-specific things that fail silently on a platform and never in your editor:

  • Integer overflow. Anything past 2⁵³ needs BigInt. Sum-of-large-numbers problems are written specifically to catch this.
  • Recursion depth. Node blows the stack around ten thousand frames. A recursive DFS over 10⁵ nodes crashes — convert to an explicit stack.
  • Printing inside a loop. console.log per line on 10⁵ lines is slow enough to time out on its own. Buffer into an array and print once, as above.
They will push with
  1. Your sum goes past 2⁵³. What happens, and what do you change?
  2. Your recursive DFS crashes only on the largest case. Why?
  3. The output is right and the case still times out. Where do you look?
How did you do?
R1·OA.3

The MCQ section nobody prepares for.

What they are really testingBreadth, cheaply. Twenty questions, one mark each, and they are worth as much as a whole DSA problem.

Product and service assessments usually bolt fifteen to twenty-five multiple-choice questions onto the front. Candidates skip preparing for them entirely and then lose the cutoff by four marks. They come from a small, predictable pool:

  • Output prediction. Hoisting, this, closures in loops, promise versus setTimeout ordering, type coercion. This is R3 content in multiple-choice form — if you have read that round, you already have these.
  • Complexity. "What is the time complexity of this snippet?" Nested loop over the same array, binary search inside a loop, sort then scan.
  • SQL. One or two: what a LEFT JOIN returns when the right side is empty, what GROUP BY without an aggregate does, index usage. R6 covers this properly.
  • HTTP and web basics. Status codes, idempotency, CORS, what a preflight is.
  • Occasionally aptitude. Percentages, ratios, one series. Service companies only. Do not lose sleep, but do not be surprised.

Answer every one — there is no negative marking on any platform in common use, so a blank is strictly worse than a guess.

The answer that loses the room

Spending eight minutes on one output-prediction question with three nested closures. Flag it, guess, move on. The MCQ section is a time trap disguised as an easy section.

They will push with
  1. A resolved promise, a setTimeout(0) and a console.log — in what order do they print?
  2. What is the complexity of a binary search inside a for loop?
  3. What does a LEFT JOIN return when the right table has no matching row?
How did you do?
R1·OA.4

How do you spend sixty minutes on two problems?

What they are really testingTriage under a clock, which is the actual skill this round measures.

  • 0–5 min. Read both problems before writing anything. Then start with the one you can see the ending of. There are no bonus marks for order and the second problem is not always the harder one.
  • 5–20 min. Brute force the easier one, submit it, and take the partial score. It is now banked and cannot be lost.
  • 20–40 min. Optimise only if the brute force actually timed out. If it passed everything, do not touch it — go to the second problem.
  • 40–55 min. Second problem, same pattern: working first, fast second.
  • 55–60 min. Submit everything, including the half-solution. Test one edge case per problem with custom input.

The people who fail this round are almost never the people who could not solve the problems. They are the people who solved one beautifully and ran out of clock on the other.

Say it like this

There is nobody to say this to. That is the point — write the plan down on paper before the timer starts, because there is no interviewer to pull you out of a hole at minute forty.

They will push with
  1. You are forty minutes in with one problem half-done. What now?
  2. The brute force passed every case. Do you still optimise it?
  3. Which problem do you open first, and how do you decide?
How did you do?
R1·OA.5

Proctoring: tab switches, the webcam, and the plagiarism flag.

What they are really testingWhether the score they are about to trust is yours.

Assume everything is recorded, because it is. Standard proctoring on HackerRank, Codility, HackerEarth and CodeSignal logs all of this:

  • Tab and window focus. Every time you leave the tab is timestamped and shown to the reviewer as a count. Two or three is normal and nobody cares. Fifteen reads as a second screen.
  • Full-screen exit, if the test enforces it. Exiting can end the attempt outright on strict settings.
  • Paste events. A 40-line paste into an empty editor is flagged and shown as one event with a size. Typing your own boilerplate takes twenty seconds and looks like typing.
  • Webcam and screen capture, on senior and remote-first roles. Sit somewhere plain, and do not talk to anyone in the room.
  • Code similarity. Submissions are compared against every other submission for that problem and against public solutions. A pasted LeetCode answer with the variable names intact is the most-caught thing in this round.
The answer that loses the room

Opening a second browser to check a syntax detail. Use the platform docs or your own memory. One tab switch to Google an array method costs nothing; a rhythm of them costs the round.

2026 note

2026: platforms now flag suspiciously perfect first drafts — no compile errors, optimal on the first submission, typed at an even pace. That pattern gets a human review, not an automatic pass. The safe version is honest: solve it yourself, and let the keystroke rhythm look like thinking. If a company allows AI assistance they say so explicitly in the instructions; silence is not permission.

They will push with
  1. The report shows fourteen tab switches. What were they?
  2. Your solution is close to a public one. Can you explain it line by line?
  3. Did you use any AI assistance during the test?
How did you do?
R1·OA.6

The variants: timed window, certified score, and the 24-hour OA.

What they are really testingNothing. Knowing which one you agreed to.

  • Fixed-window OA. "Complete within 72 hours, 90 minutes once you open it." Open it when you are sharp, not at 11pm because it expires tomorrow. The window is for scheduling; the clock inside is real.
  • Certified assessment. CodeSignal-style, one score reused across many companies. Worth taking seriously once — a good score gets you skipped past this round elsewhere for a year.
  • The 24-hour take-home OA. A small build task on the platform rather than DSA. This is a take-home round wearing an OA badge — read that chapter, not this one.
  • The paired follow-up. Some companies bring your OA solution into the next round and ask you to explain or extend it. Keep a copy of what you submitted. You will not get it back from the platform.
They will push with
  1. Walk me through the solution you submitted.
  2. Now extend it to handle updates to the input.
  3. What would you change about it with another thirty minutes?
How did you do?
R1·OA.7

You did not hear back. What actually happened?

What they are really testingNothing — but the answer changes what you do next.

OA rejections are almost never communicated, and the cutoff is not published. Three real reasons, in order of frequency:

  • You were under the cutoff, which is often set at a percentile of that week's applicant pool rather than an absolute score. The same submission passes in a quiet week.
  • A proctoring flag put your attempt in a manual review queue that nobody drained.
  • Nothing to do with you. The role was filled or frozen and the pipeline was dropped whole.

The useful response is to keep your own record: date, company, platform, problems, roughly what you scored. After four of them a pattern shows up — usually "I keep timing out on the second problem", which is a fixable thing, not a talent problem.

They will push with
  1. Have you applied or interviewed with us in the last six months? (Most companies enforce a cool-off period.)
  2. Would you be willing to retake the assessment?
  3. Do you have a certified score you can share instead?
How did you do?

Finished this round?

0 of 27 rounds read in this book