Challenges
Pick a challenge and solve it in the browser. Algorithms have run/submit; projects are open-ended with an AI interviewer.
Algorithms
Two Sum
EasyGiven an array of integers `nums` and an integer `target`, return **indices** of the two n…
Valid Parentheses
EasyGiven a string `s` containing only the characters `(`, `)`, `{`, `}`, `[` and `]`, determi…
Reverse Integer
EasyGiven a signed 32-bit integer `x`, return `x` with its digits reversed. If reversing `x` c…
Valid Palindrome
EasyGiven a string `s`, return `true` if it is a **palindrome**, otherwise `false`. Ignore non…
Maximum Subarray
MediumGiven an integer array `nums`, find the subarray with the largest sum and return that sum.…
Merge Sorted Arrays
MediumGiven two sorted integer arrays `nums1` and `nums2`, merge `nums2` into `nums1` as one sor…
Container With Most Water
MediumYou are given an integer array `height` of length `n`. There are `n` vertical lines drawn …
3Sum
MediumGiven an integer array `nums`, return all triplets `[nums[i], nums[j], nums[k]]` such that…
Subarray Sum Equals K
MediumGiven an array of integers `nums` and an integer `k`, return the total number of subarrays…
Binary Search
MediumGiven a sorted ascending array `nums` and a target `target`, return the index of `target` …
Group Anagrams
MediumGiven an array of strings `strs`, group the anagrams together. An anagram is a word formed…
Number of Islands
MediumGiven a 2D grid `grid` of `'1'`s (land) and `'0'`s (water), return the number of islands. …
Trapping Rain Water
HardGiven `n` non-negative integers representing an elevation map where the width of each bar …
Longest Palindromic Substring
HardGiven a string `s`, return the **longest palindromic substring** in `s`. A palindrome read…
Edit Distance
HardGiven two strings `word1` and `word2`, return the **minimum number of operations** require…
Longest Valid Parentheses
HardGiven a string containing just the characters `(` and `)`, find the length of the longest …
Projects
Simple Todo API
EasyBuild a minimal API that stores a list of todo items in memory. Support adding a todo and …
Hello World API
EasyCreate a single endpoint that returns a JSON greeting. Optionally accept a name query para…
Static Page Generator
EasyWrite a small script that reads a markdown file and outputs a simple HTML page (title + bo…
Form Validation Utility
EasyBuild a small utility that validates an object against a schema (e.g. required fields, typ…
Product Search API
MediumYou're building a product search API for an e-commerce platform. Users need to search for …
REST API with CRUD
MediumDesign and implement a small REST API with full CRUD for a single resource (e.g. "Tasks" o…
Design a Rate Limiter
MediumDesign and implement a simple rate limiter: given a user/key and a limit (e.g. 100 request…
In-Memory Caching Layer
MediumDesign a simple cache with get(key), set(key, value), and optional TTL. Evict expired entr…
Webhook Receiver
MediumBuild an endpoint that receives POST requests (e.g. webhook payloads), validates a simple …
Config Parser
MediumParse a config file (e.g. INI or env-style KEY=VALUE) and return a typed object. Support c…
Request Deduplication
MediumImplement a deduplication layer: given a key (e.g. request id), only allow one in-flight r…
Log Aggregator
MediumDesign a small service that accepts log entries (level, message, timestamp), stores them i…
Distributed Session Store
HardDesign a session store that could work across multiple app servers. Sessions: create, get,…
Event Sourcing Mini
HardImplement a minimal event-sourced counter or todo list: append events (e.g. Incremented, I…
Multi-Tenant API
HardDesign an API where every request is scoped to a tenant (e.g. via header or subdomain). Da…
Real-Time Dashboard Backend
HardDesign the backend for a real-time dashboard: metrics (e.g. CPU, requests/min) streamed to…