—Streak
—Solved
JS—
UI—
Backend—
| Status | Challenge | Description | Difficulty |
|---|---|---|---|
| — | Filter articles by case-insensitive search across title and tags. | Entry | |
| — | Group transactions by category and sum amounts. | Entry | |
| — | Validate form fields using a data-driven rule array. | Entry | |
| — | Build a centered letter pyramid. | Entry | |
| — | Print a hollow square pattern. | Entry | |
| — | Fix the classic closure bug where setTimeout callbacks all capture the same variable. | Entry | |
| — | Fix broken inheritance and implement a new Human class | Entry | |
| — | Two Sum JS | Find two indexes with sum equal to target | Entry |
| — | Retry an async operation with limits | Mid | |
| — | Flatten a nested comment tree up to a depth limit, with metadata for indented rendering. | Mid | |
| — | Web Crawler Backend | Implement a web crawler that discovers same-domain pages. | Mid |
| — | Build a button rate limiting the clicks | Mid | |
| — | Implement a generic curry utility that progressively collects arguments until the function arity is met. | Mid | |
| — | Implement Promise.all without using the native function | Mid | |
| — | Implement a useFetch(url) hook returning { data, loading, error } with stale-request cancellation, then use it to render a paginated Pokémon list (PokéAPI) with prev/next navigation. | Mid | |
| — | Implement debounce(fn, delay) with .cancel() and .flush() control methods, preserving args and this. | Mid | |
| — | Team Free Slots Backend | Find every time range when an entire group of users is free, given their busy calendar events and a search window. | Senior+ |
| — | Build a 3-step sign-up wizard. | Senior+ | |
| — | Build a 6-digit 2FA code input with auto-focus, paste support, arrow key navigation, and validation etc. | Senior+ | |
| — | Build an autocomplete search input that fetches suggestions as the user types and supports full keyboard control. | Senior+ |