S
Signa
DashboardDiscoverExercisesPathsCraftPricing
S
Signa
S
Signa

AI-powered exercises that adapt to your skill level.

Company

  • About Us
  • Our Team
  • Partners
  • Investors
  • Jobs

Resources

  • Blog
  • FAQs
  • Contact Us

Legal

  • Privacy Policy
  • Cookie Policy
  • Terms of Service

© 2026 Signa Labs Inc. All rights reserved.

Exercises

Hands-on exercises across multiple languages and topics.

Browse AllCraft

Arrays & Hashing

Master array manipulation, hash maps, two-pointer techniques, and sliding window patterns — the most common interview topics at top tech companies.

View all 23
mediumTypeScript
Todo List State Management

Strings & Pattern Matching

Build fluency with string manipulation, pattern matching, parsing, and text processing — essential for coding screens and take-home assessments.

View all 13
medium

Linked Lists

Practice pointer manipulation, reversal, cycle detection, and merge operations — classic interview staples that test your understanding of data structures.

View all 6
hard

Trees & Graphs

Conquer BFS, DFS, tree traversals, and graph algorithms — favorites at FAANG and top-tier companies.

View all 10
medium

Dynamic Programming

Learn memoization, tabulation, and optimal substructure — the category that separates good candidates from great ones in technical interviews.

View all 8
medium

Sorting & Searching

Master binary search variations, sorting algorithms, and divide-and-conquer strategies that form the foundation of efficient problem solving.

View all 10
medium

Stacks & Queues

Practice monotonic stacks, bracket matching, and queue-based algorithms — surprisingly common in real interviews.

View all 4
hard

Recursion & Backtracking

Build confidence with recursive thinking, permutations, combinations, and constraint satisfaction problems.

View all 11
hard

Greedy Algorithms

Learn when and how to apply greedy strategies — interval scheduling, activity selection, and optimization problems that appear in top-tier interviews.

medium

REST API Design

Build production-quality REST APIs with proper routing, validation, error handling, and middleware — skills every backend engineer needs on the job.

View all 15
easy

Database & SQL

Master SQL queries, joins, window functions, CTEs, and aggregations — increasingly tested in technical interviews and essential for every developer.

View all 6
medium

System Design Fundamentals

Build the building blocks of distributed systems: caches, rate limiters, message brokers, and more — hands-on practice that goes beyond whiteboard diagrams.

View all 6
medium

React & React Patterns

Master hooks, component patterns, state management, and testing — the skills that land frontend engineering roles.

View all 5
medium

Next.js & Full-Stack React

Build with the dominant full-stack framework: server components, app router, API routes, and server actions.

View all 5
medium

Node.js & Express

Build backend services with Express: middleware, authentication, error handling, and API patterns — the backbone of Node.js interviews.

View all 16
easy

Python Web (Flask/FastAPI)

Build web APIs with Flask and FastAPI: validation, dependency injection, blueprints, and async patterns for Python backend roles.

View all 6
hard

TypeScript Patterns

Go beyond basic types: generics, utility types, type guards, and advanced patterns that are expected at most companies in 2026.

View all 16
medium

AI & LLM Integration

Build AI-powered features: LLM API integration, prompt engineering, structured output, RAG patterns, and error handling — the must-have skill of 2026.

View all 6
hard
# Todo List Component Implement a `TodoList` class that manages todo items with full CRUD functionality. Each todo shou...
typescriptstate-managementcrud+5
easyPython
URL Shortener with Base62 Encoding
Build a URL shortener class that can encode long URLs into short codes and decode them back. Implement a `URLShortener`...
hash-mapbase62encoding+5
mediumPython
Consistent Hashing Ring
# Consistent Hashing Ring Implement a consistent hashing ring data structure that distributes keys across nodes while m...
hashingdistributed-systemsdata-structures+4
Python
Prompt Template Engine
Build a `PromptTemplate` class that renders template strings with variable substitution. Your class should: - Take a te...
templatesstring-processingvalidation+7
easyPython
Generate Valid Parentheses Combinations
Write a function that generates all valid combinations of `n` pairs of parentheses. A valid combination means: - Each o...
recursionbacktrackingstrings+1
mediumPython
Reverse Polish Notation Calculator
# Reverse Polish Notation Calculator Implement a function that evaluates mathematical expressions written in Reverse Po...
stackalgorithmsmath+5
Python
LRU Cache with O(1) Operations
# LRU Cache Implementation Implement an LRU (Least Recently Used) cache that supports `get(key)` and `put(key, value)`...
data-structuresalgorithmshash-map+5
mediumPython
Reorder Linked List In-Place
# Reorder Linked List In-Place Given a singly linked list, reorder it in-place to alternate between nodes from the begi...
linked-listtwo-pointersin-place+3
mediumPython
Merge Two Sorted Linked Lists
Write a function that merges two sorted linked lists into one sorted linked list. The function should take two linked l...
linked-liststwo-pointersmerging+4
Python
Minimum Jumps to Reach End
# Minimum Jumps to Reach End Implement a function that finds the minimum number of jumps needed to reach the last index...
arraysgreedydynamic-programming+4
mediumPython
Word Search Solver
Build a function that solves a word search puzzle. Given a 2D board of letters and a target word, determine if the word...
backtrackingdfsrecursion+2
easyPython
Binary Search Implementation
Implement a binary search function that finds the index of a target value in a sorted array. **Function signature:** `b...
algorithmsbinary-searcharrays+8
Python
Minimum Jumps to Reach End
# Minimum Jumps to Reach End Implement a function that finds the minimum number of jumps needed to reach the last index...
arraysgreedydynamic-programming+4
hardPython
0/1 Knapsack Problem Solver
Implement a solution to the classic 0/1 knapsack problem using dynamic programming. Given a knapsack with a weight capa...
dynamic-programmingalgorithmsoptimization+3
mediumPython
Word Break Problem
Build a function that determines if a string can be segmented into words from a given dictionary. ## Function Signature...
dynamic-programmingstring-manipulationalgorithms+3
TypeScript
Product API with Pagination, Filtering, and Sorting
Build a RESTful API handler for a GET /products endpoint that supports advanced query features. ## Requirements Implem...
apipaginationfiltering+5
mediumPython
Merge Overlapping Intervals
Write a function that merges overlapping intervals and returns the result sorted by start time. ## Requirements Implem...
intervalssortingarray-manipulation+2
mediumPython
Meeting Room Scheduler
# Meeting Room Scheduler Write a function `min_meeting_rooms(intervals)` that determines the minimum number of meeting...
algorithmsschedulingintervals+3
Python
Sliding Window Maximum
Implement a function that finds the maximum value in each sliding window of size k across an array. Given an array of i...
sliding-windowdequeoptimization+5
mediumPython
Reverse Polish Notation Calculator
# Reverse Polish Notation Calculator Implement a function that evaluates mathematical expressions written in Reverse Po...
stackalgorithmsmath+5
easyPython
MinStack: Stack with O(1) Minimum
Build a `MinStack` class that supports all stack operations plus finding the minimum element, all in O(1) time complexit...
stackdata-structuresoptimization+4
Python
N-Queens Solver
Build a function that solves the classic N-Queens problem using backtracking. The N-Queens problem asks: how can you pl...
backtrackingrecursionalgorithms+2
mediumPython
Word Search Solver
Build a function that solves a word search puzzle. Given a 2D board of letters and a target word, determine if the word...
backtrackingdfsrecursion+2
mediumPython
Grid Path Finder
# Grid Path Finder Create a function that finds all possible paths in a grid from the top-left corner (0, 0) to the bot...
recursionbacktrackinggrid-traversal+2
Python
Merge Overlapping Intervals
Write a function that merges overlapping intervals and returns the result sorted by start time. ## Requirements Implem...
intervalssortingarray-manipulation+2
mediumPython
Meeting Room Scheduler
# Meeting Room Scheduler Write a function `min_meeting_rooms(intervals)` that determines the minimum number of meeting...
algorithmsschedulingintervals+3
mediumPython
Minimum Jumps to Reach End
# Minimum Jumps to Reach End Implement a function that finds the minimum number of jumps needed to reach the last index...
arraysgreedydynamic-programming+4
Python
Mock LLM API Client with Error Handling
Build a function that calls a mock LLM API with proper error handling for common API issues. Create a function `call_ll...
apierror-handlinghttp+7
mediumPython
FastAPI Dependency Injection Pattern
Build a FastAPI application with dependency injection patterns using database and authentication dependencies. **Requir...
fastapidependency-injectionauthentication+4
mediumPython
Flask Request Middleware with CORS, Logging, and API Key Authentication
# Flask Request Middleware Build Flask middleware using `before_request` and `after_request` hooks that handles: 1. **...
flaskmiddlewarecors+5
SQL
Relational Division: Customers Who Ordered All Products in a Category
# Find Customers Who Ordered Every Product in a Category Write a SQL query that finds customers who have ordered **ever...
sqlrelational-divisionjoins+5
mediumSQL
Employee Salary Ranking with Window Functions
Write SQL queries using window functions to analyze employee salary data within departments. You have access to an `emp...
sqlwindow-functionsranking+5
mediumSQL
Recursive CTE for Employee Manager Chain
Create a SQL query using Common Table Expressions (CTEs) to build a complete organizational hierarchy showing the chain...
sqlrecursive-ctehierarchy+5
Python
Token Bucket Rate Limiter
Implement a rate limiter using the token bucket algorithm. The token bucket is a classic algorithm for rate limiting tha...
algorithmsrate-limitingtoken-bucket+5
hardPython
DAG Task Scheduler
Build a task scheduler that executes tasks while respecting their dependencies using a Directed Acyclic Graph (DAG). Yo...
graph-algorithmstopological-sortdag+5
mediumPython
In-Memory Key-Value Store with TTL
# In-Memory Key-Value Store with TTL Implement a key-value store that supports automatic expiration of keys after a spe...
data-structurescachingtime-to-live+5
TypeScript
Next.js Dynamic Routes with Static Generation
Create a Next.js-style dynamic route component that simulates the behavior of `[slug]/page.tsx` with `generateStaticPara...
reacttypescriptnext.js+6
mediumTypeScript
Virtual List Component for Large Datasets
Build a virtualized list component that efficiently handles rendering thousands of items by only rendering visible items...
virtualizationperformancescrolling+6
mediumTypeScript
User Data Fetcher with State Management
Build a data fetching component that loads users from a mock API and manages all possible states. ## Requirements Impl...
asyncstate-managementerror-handling+6
TypeScript
Next.js Dynamic Routes with Static Generation
Create a Next.js-style dynamic route component that simulates the behavior of `[slug]/page.tsx` with `generateStaticPara...
reacttypescriptnext.js+6
mediumTypeScript
JWT Authentication Middleware
Build JWT authentication middleware for an Express API with login and protected routes. ## Requirements Create an Expr...
expressjwtauthentication+6
hardTypeScript
Next.js On-Demand ISR Revalidation System
Build a system that simulates Next.js on-demand ISR (Incremental Static Regeneration) with revalidation capabilities. #...
nextjsisrcaching+6
Python
Mock LLM API Client with Error Handling
Build a function that calls a mock LLM API with proper error handling for common API issues. Create a function `call_ll...
apierror-handlinghttp+7
mediumPython
FastAPI Dependency Injection Pattern
Build a FastAPI application with dependency injection patterns using database and authentication dependencies. **Requir...
fastapidependency-injectionauthentication+4
mediumPython
Flask Request Middleware with CORS, Logging, and API Key Authentication
# Flask Request Middleware Build Flask middleware using `before_request` and `after_request` hooks that handles: 1. **...
flaskmiddlewarecors+5
Python
FastAPI WebSocket Chat Server
# FastAPI WebSocket Chat Server Build a real-time chat server using FastAPI WebSockets that supports multiple chat room...
fastapiwebsocketsreal-time+4
mediumPython
Flask Blueprint REST API with Products and Orders
Build a Flask REST API using blueprints to organize your endpoints. Create two separate blueprints: 1. **Products Bluep...
flaskblueprintsrest-api+5
easyPython
Flask Items API with Validation
Build a Flask REST API that manages a collection of items. Your API should support: ## Requirements **GET /items** - R...
flaskrest-apivalidation+4
TypeScript
TypeScript Utility Types from Scratch
# Build Custom Utility Types Implement five essential TypeScript utility types from scratch without using the built-in...
typescriptutility-typesmapped-types+3
mediumTypeScript
Type-Safe Query Builder with Method Chaining
Build a type-safe QueryBuilder class that enforces method call order and prevents duplicate calls using TypeScript's typ...
typescriptbuilder-patterntype-safety+4
mediumTypeScript
Generic Result Type Implementation
Implement a generic `Result<T, E>` type similar to Rust's Result enum. This type represents either a successful value (`...
typescriptgenericsfunctional-programming+4
Python
RAG Text Retrieval with Cosine Similarity
Build a Retrieval-Augmented Generation (RAG) system that finds the most relevant text chunks for a given query. ## Requ...
raginformation-retrievalcosine-similarity+7
mediumPython
LLM Structured Output with Schema Validation
Build a function that enforces structured JSON output from a language model by validating responses against a schema and...
jsonvalidationretry-logic+6
mediumPython
API Retry Wrapper with Exponential Backoff
Build a retry wrapper that handles failed API calls with intelligent retry logic. Your `RetryWrapper` class should: - A...
retry-logicexponential-backoffapi-resilience+7