CHALLENGES · SOLVE, DON'T SCROLL

Code you write, not read.

Interview-style problems you solve in the browser — in Python or TypeScript, with real runnable code and hidden tests that check your answer the moment you hit Run. Stub, hints, and a one-click reveal-solution when you're stuck. No account, no setup.

7Challenges
2Languages
100%Free · no sign-up
Start here
two-sum.solve
Challenge N° 01Easy

Two Sum

The classic warm-up: find the two numbers that add up to a target. Brute force is O(n²) — a hash map gets you to one pass, O(n). Solve it in Python or TypeScript, right in your browser, with hidden tests and a reveal-solution button.

ArraysHash Map
Solve in Python / TypeScript →
valid-parentheses.solve
Challenge N° 02Easy

Valid Parentheses

The canonical stack problem: decide whether every bracket is closed by the right type, in the right order. A stack turns nested matching into a single pass. Solve it in Python or TypeScript with hidden tests.

StackStrings
Solve in Python / TypeScript →
fizzbuzz.solve
Challenge N° 03Easy

Fizz Buzz

The famous screening question. Print 1…n, but multiples of 3 become "Fizz", of 5 become "Buzz", and of both become "FizzBuzz". Easy — the catch is testing divisibility in the right order. Solve it in Python or TypeScript.

MathStringsWarm-up
Solve in Python / TypeScript →
Start here
softmax.solve
Challenge N° 04Easy

Softmax

The function at the end of every classifier and language model: turn raw scores (logits) into a probability distribution. Implement the numerically stable version so big logits do not overflow. Solve it in Python or TypeScript.

AI EngineeringLLMDecoding
Solve in Python / TypeScript →
cosine-similarity.solve
Challenge N° 05Easy

Cosine Similarity

The measure behind every embedding search and RAG system: how aligned are two vectors, ignoring their length? Dot product over the product of magnitudes — 1 identical, 0 orthogonal, -1 opposite. Solve it in Python or TypeScript.

AI EngineeringEmbeddingsMath
Solve in Python / TypeScript →
top-k-retrieval.solve
Challenge N° 06Medium

Top-K Retrieval

The core of the "R" in RAG: given a query embedding and a set of document embeddings, return the indices of the k most similar docs by cosine similarity, with a stable tie-break. Solve it in Python or TypeScript.

AI EngineeringRAGRetrievalEmbeddings
Solve in Python / TypeScript →
token-f1.solve
Challenge N° 07Medium

Token-Level F1

The metric behind QA evaluation (SQuAD and friends): how well does a predicted answer overlap a reference as a bag of words? Compute token precision and recall, then their harmonic-mean F1. Solve it in Python or TypeScript.

AI EngineeringEvalsNLP
Solve in Python / TypeScript →

Coding challenges — frequently asked questions

What are these coding challenges?

Each challenge is a classic interview-style problem you solve in your browser. You get a stub, a problem statement with examples, and hidden tests. Write your solution in Python or TypeScript, hit Run, and the tests tell you instantly whether it works — no account, no setup, nothing to install.

How does the code actually run with no server?

Entirely in your browser. Python runs as real CPython compiled to WebAssembly (Pyodide); TypeScript is transpiled on the fly. The site is a static site with no backend, so your code never leaves your machine.

Can I see the solution if I get stuck?

Yes. Every challenge has hints and a one-click "Reveal solution" button that drops a clean, commented reference implementation into the editor. The goal is to build intuition — struggle first, then compare your approach with the canonical one.

Do these help with coding interviews?

Yes. The challenges target the array, string, hash-map, stack and two-pointer patterns that show up constantly in technical screens. Solving them by hand — then checking against hidden tests — is far more durable practice than reading solutions. Many also cross-link to an animated visualizer so you can see the underlying algorithm work.

Are the challenges free?

Completely free, with no sign-up. Your solved progress is saved locally in your browser so the catalog remembers what you have finished.