Skip to content
Work Free practice Coding course Blog Method Results Why me About Enquire Book a call

Free · Patterns first · Six languages

Coding interview practiceEarly access

Learn the pattern, write its template from memory, then solve problems against the clock in an editor in the page. Every solution is given in Python, C++, Java, JavaScript, Rust and Haskell, and every one is compiled and tested before it is published.

Start a timed interview Which pattern? →

8
patterns
24
problems
6
languages
seen = {}                    # key -> whatever you need back
for i, x in enumerate(a):
    key = derive(x)          # the whole problem is choosing this
    if key in seen:
        use(seen[key], i)    # look up BEFORE inserting, or you match x with itself
    seen[key] = i

The patterns

016 problems

Arrays and hashing

Trade memory for time: a hash map answers "have I seen this?" in O(1), and most array problems reduce to asking it the right question.

Learn the pattern →
023 problems

Two pointers

1 3 4 5 7 11 lo hi too small → lo++ too big → hi-- each comparison removes one index for good

Two indices walking a sorted or paired structure, each step ruling out one candidate for good.

Learn the pattern →
032 problems

Sliding window

t m m z u x t lo jumps past the repeat hi always moves right the window is valid at every step

A window that grows on the right, shrinks on the left, and holds an invariant at all times.

Learn the pattern →
042 problems

Binary search

not enoughworks first feasible answer lo and hi close in, halving each time check is monotone: once true, always true

Search the answer, not the array: halve a monotone predicate until one candidate is left.

Learn the pattern →
052 problems

Dynamic programming

0 1 2 1 1 2 2 0123456 best[6] = best[3] + 1 every smaller amount is already final fill in an order that makes each entry final

Write the recursion, notice the repeats, fill a table in an order that makes each entry final.

Learn the pattern →
063 problems

Stack

73 74 75 71 69 72 69 71 75 stack (top) 72 pops 69 and 71: their answer is today each index is pushed once and popped once

Keep the elements whose question is still open; each new element settles the ones it beats and waits its turn.

Learn the pattern →
073 problems

Heap (priority queue)

3 5 8 9 7 12 smallest on top each parent ≤ its children; push and pop are O(log n)

Keep the few elements that matter in a structure that hands you the smallest (or largest) in O(1) and updates in O(log n).

Learn the pattern →
083 problems

Backtracking

✕ fails: cut solution dead end choose, explore, undo

Build a solution one choice at a time, and abandon a branch the moment it cannot succeed.

Learn the pattern →

How it works

  1. Learn the patternEach section opens with when the pattern applies and a template you should be able to write without thinking. Most interview bugs are deviations from it.
  2. Solve in the pageAn editor with the function signature ready, your code run against the real test table, and hints you open only if you need them.
  3. Then do it under pressureInterview mode gives you a window sized to the difficulty, a limited number of runs and submissions, and a report at the end showing where the marks went.

Common questions

Which languages are covered?

Every problem carries a full solution in Python, C++, Java, JavaScript, Rust and Haskell. The in-page editor runs JavaScript today; the other languages are there to read, compare and copy. Python in the browser is coming.

Are the solutions actually tested?

Yes. Before publishing, every Python and JavaScript solution is run against the full test table, and the C++, Rust and Haskell solutions are compiled and executed. Java is reviewed by hand, because there is no Java toolchain on the build machine.

What is interview mode?

A closer simulation of the real thing: a fixed window by difficulty, a limited number of runs and submissions, penalties for failed submissions and for opening hints, and a report at the end with your score, the deductions and your submission history.

Is this for quant interviews or software interviews?

Both. The patterns are the same; the flavour differs. Trading firms weight implementation speed and edge cases more heavily, and often ask you to talk through complexity as you type.

Want someone watching how you code?

The gap between solving a problem alone and solving it while someone interrupts you is the whole interview. I run mock interviews one to one, and I have sat on both sides of them.

Quant interview preparation Book a 20-minute call