Courses, documentation and graded practice problems on system design and backend engineering. Write the code, run it against real test cases, see what breaks.
def two_sum(nums, target):
seen = {}
for i, n in enumerate(nums):
if target - n in seen:
return [seen[target - n], i]
seen[n] = i
return [] # one pass, O(n)
Structured paths, lesson by lesson.
Run your solution against real test cases.
A wrong answer shows the input it failed on, your output and the expected output side by side — so the next attempt is a fix, not a guess.
Browse problemsEvery problem, example and hint is open to read — no account needed.
A real editor with syntax highlighting, in Python, C++, Java, JavaScript, Go, Rust and five more.
Run checks the examples. Submit runs every hidden test in an isolated sandbox and returns a verdict.
The things people ask before they start.
Yes. Every course, doc, article and problem statement is free to read without an account.
Only to run code and keep your progress. An account is where your submissions, solved problems, completed lessons, bookmarks and notes are saved.
Python, C, C++, Java, JavaScript, TypeScript, Go, Rust, Ruby, PHP and Bash. Each problem lists the ones it accepts.
In a fresh, isolated container with no network access and strict time and memory limits. It is thrown away as soon as the run finishes.
So that a solution has to be correct in general, not just on the examples. When a submission fails, you still see the verdict and how many tests passed.