164 questions across 11 modules, written for interviews rather than lifted from the course: predict the output, read the disassembly, find the bug, write the function in ten minutes. Then run a full mock for your role.
A clock you cannot reset
The server starts it and keeps it. A reload resumes where you were; answers after time are refused.
No hints, no autocomplete
Interview questions have no hints at all, and the editor runs with completion, suggestions and hover docs off.
A debrief every time
When the clock stops you get the answer, the reasoning, a reference solution, and where the curriculum teaches it.
The first question in every module is free, so you can try each format before paying. Everything else, and every mock, comes with Interview Prep.
Sign in to start a question and keep your scores.
$79 once
$149 after the promo ends on 31 Oct 2026
Interview Prep is its own product, separate from the curriculum plans. Lifetime includes it. Paying from India? You are charged in INR at the day's rate, with UPI, netbanking and wallets.
A fixed set of questions on one clock, graded at the end, the way a screen actually runs.
Generalist
The first technical round for a systems or infrastructure role: C fundamentals, a few bit-manipulation functions written against the clock, and two programs to debug that you did not write.
4× M1 · 3× M2 · 2× M6
Embedded
The classic embedded C test and then some: volatile and const, absolute addresses, what an interrupt handler must not do, register bit manipulation, struct layout, and a field bug that only shows up after 49 days.
6× M1 · 3× M2 · 2× M3 · 1× M6
Kernel / OS
Undefined behaviour the compiler exploits, a deadlock and a lost wakeup to fix, RCU, two crash reports to triage, and a slab allocator to design at the whiteboard.
The questions that open embedded and systems phone screens, after Nigel Jones's classic C test: volatile, static and const, declarations you have to read inside out, macro traps, integer conversions, sizeof, sequence points, and what an interrupt handler must never do. Quick to answer, easy to get subtly wrong.
3× M4 · 3× M7 · 2× M11 · 1× M8
Write the function in ten minutes: set a bit without touching its neighbours, count, reverse, swap and interleave bits, sign-extend a field, pack a wire header. Hidden tests live at zero, all ones and the sign bit, where these answers are actually decided.
Predict sizeof and offsetof without a compiler, reorder a struct to drop its padding, and reason about packed structs, flexible array members, container_of, type punning and cache-friendly layouts. The questions interviewers use to see whether you picture bytes.
Short functions, each with one defect the standard has a rule about: overflow checks the optimiser deletes, null checks after the dereference, strict aliasing, dangling pointers after realloc, overlapping memcpy, shifts past the width, restrict, and pointers one step too far. Name the rule, not just the symptom.
Real compiler output, pinned to the compiler and flags that produced it: recover the C, trace a loop by hand, name the optimisation, find the stack canary, spot a jump table, read the calling convention off the registers, on x86-64 and AArch64.
Each program compiles, runs, and is wrong in exactly one place. Read code you did not write, use the passing and failing tests to narrow it down, and fix the defect with the smallest change: off-by-ones, promotion and signedness traps, macro side effects, wraparound, shallow copies.
Races that really lose updates, deadlocks that really hang, and lost wakeups, graded on Judge0's multi-core workers; plus the memory-model questions that tests cannot catch on x86: release and acquire, store buffering, ABA, double-checked locking, seqlocks and RCU.
Open-ended systems design in the interview form: a malloc, a microcontroller memory pool, a lock-free fast path, a scheduler, an A/B firmware update, a write-ahead log, a timer wheel and more. Write the answer, then score it against the rubric an interviewer would use, and ask for AI feedback on the same rubric.
Back-of-the-envelope numbers under interview pressure: packets per second at line rate, TLB reach, page-table footprint, the cost of a cold linked list or an unpredictable branch, syscall and context-switch overhead, B-tree lookups on a disk, and a coin cell's battery life. Each gives its inputs; the skill is the chain of arithmetic.
Real linker errors and ELF dumps: undefined and multiple definitions, why archive order matters, PLT and GOT, position-independent code, weak symbols in a vector table, LD_PRELOAD's limits, VMA versus LMA on a microcontroller, --gc-sections, and what strip leaves behind.
Real tool output, read like an on-call engineer: gdb backtraces and registers, AddressSanitizer, UndefinedBehaviorSanitizer, ThreadSanitizer and LeakSanitizer reports, Valgrind, strace and glibc's own aborts. Find the root cause, not just the line that crashed.