Difficulty
Concepts
Beginner 15–30 min

Algorithms

Practice TDD with the 100 Doors Kata. Learn to solve the classic 100 doors problem using test-driven development. Great for practicing loops, arrays, and TDD fundamentals.

Beginner 15–30 min

AlgorithmsStringsValidation

Detect anagrams, group words by anagram sets, and find anagram pairs. Practice string manipulation, sorting, hashing, and set operations through TDD.

Beginner 15–30 min

Algorithms

Master TDD with the Balanced Brackets Kata. Learn to implement a bracket validation system using test-driven development. Great for practicing stack operations and TDD techniques.

Beginner 15–30 min

AlgorithmsStringsIncremental Design

Generate the look-and-say sequence where each term describes the previous one. Practice string processing, pattern recognition, and recursive thinking through TDD.

Beginner 15–30 min

StringsAlgorithms

Master TDD with the End of Line Trim Kata. Learn to implement end-of-line trimming logic using test-driven development. Great for practicing string manipulation and TDD techniques.

Beginner 15–30 min

Algorithms

Master TDD with the Fizz Buzz Whiz Kata. Learn to implement the classic FizzBuzz problem with a twist using test-driven development. Great for practicing TDD fundamentals.

Beginner 15–30 min

Strings

Practice TDD with the Greeting Kata. Learn to implement a personalized greeting system using test-driven development. Perfect for beginners learning TDD fundamentals.

Beginner 15–30 min

Validation

Practice TDD with the IP Validator Kata. Learn to implement IP address validation using test-driven development. Great for practicing string parsing and validation logic.

Beginner 15–30 min

Algorithms

Master TDD with the Last Sunday Kata. Learn to implement date calculations for finding the last Sunday of each month using test-driven development. Great for practicing date manipulation and TDD techniques.

Beginner 15–30 min

Validation

Practice TDD with the Leap Year Kata. Learn to implement leap year calculation rules using test-driven development. Perfect for practicing date logic and TDD fundamentals.

Beginner 15–30 min

Algorithms

Practice TDD with the Metric Converter Kata. Learn to implement metric conversion logic using test-driven development. Great for practicing unit conversion and TDD techniques.

Beginner 15–30 min

Strings

Master TDD with the Numbers to Words Kata. Learn to implement number-to-word conversion logic using test-driven development. Great for practicing string manipulation and TDD techniques.

Beginner 15–30 min

AlgorithmsIncremental Design

Decompose any integer into its prime factors. Uncle Bob's classic demonstration kata for practicing the simplest TDD cycles and transformation priority premise.

Beginner 15–30 min

Edge CasesAlgorithms

Practice TDD with the Recipe Calculator Kata. Learn to implement a recipe scaling and unit conversion system using test-driven development. Great for practicing algorithms and validation.

Beginner 15–30 min

Algorithms

Master TDD with the Rock Paper Scissors Kata. Learn to implement the classic game logic using test-driven development. Great for practicing conditional logic and TDD techniques.

Beginner 15–30 min

AlgorithmsNumbers

Practice TDD with the Roman Numerals Kata. Learn to convert between Roman and Arabic numerals using test-driven development. Great for practicing TDD techniques.

Beginner 15–30 min

StateDesign

Master TDD with the Tic Tac Toe Kata. Learn to implement a complete Tic Tac Toe game using test-driven development. Perfect for practicing game logic and TDD techniques.

Beginner 15–30 min

Edge CasesAlgorithms

Practice TDD with the Time Zone Converter Kata. Learn to implement time zone conversions using test-driven development. Great for practicing date/time handling and validation.

Beginner 15–30 min

Strings

Master TDD with the Todo List Kata. Learn to implement a todo list application using test-driven development. Great for practicing CRUD operations and TDD techniques.

Intermediate 30–60 min

Edge CasesAlgorithms

Practice TDD with the Age Calculator Kata. Learn to implement age calculation logic using test-driven development. Perfect for practicing date manipulation and TDD fundamentals.

Intermediate 30–60 min

StateValidationEdge CasesBoundaries

Implement a bank account with transaction history, overdraft protection, and statement printing. Practice TDD with state management and business rules.

Intermediate 30–60 min

AlgorithmsParsingValidationEdge Cases

Parse ASCII art digits into account numbers. Practice pattern recognition, string parsing, validation with checksums, and error correction through TDD.

Intermediate 30–60 min

Business LogicMockingBoundariesValidation

Build a blog backend with posts, comments, tags, and authorization rules. Practice TDD with mocking, faking database dependencies, and enforcing ownership boundaries.

Intermediate 30–60 min

Algorithms

Master TDD with the Change Maker Kata. Learn to implement change-making logic using test-driven development. Great for practicing algorithms and TDD techniques.

Intermediate 30–60 min

Mocking

Practice TDD with the Character Copy Kata. Learn to implement character copying logic using test-driven development. Great for practicing input/output and TDD fundamentals.

Intermediate 30–60 min

State

Practice TDD with the Clam Card Kata. Learn to implement transit card logic using test-driven development. Great for practicing state management and TDD techniques.

Intermediate 30–60 min

AlgorithmsStringsValidationEdge Cases

Build the feedback engine for a Mastermind-style code-breaking game. Practice exact vs partial matching, priority rules, and edge case handling through TDD.

Intermediate 30–60 min

AlgorithmsStringsIncremental Design

Generate a diamond shape from a given letter. A deceptively simple kata that teaches incremental design, symmetry reasoning, and building complex output from simple rules.

Intermediate 30–60 min

Algorithms

Practice TDD with the Heavy Metal Bake Sale Kata. Learn to implement change-making logic for a bake sale using test-driven development. Great for practicing algorithms and TDD techniques.

Intermediate 30–60 min

StateBusiness Rules

Practice TDD with the Library Management Kata. Learn to implement a library system for managing books, checkouts, and reservations using test-driven development. Great for practicing state management and business rules.

Intermediate 30–60 min

Data StructuresAlgorithmsEdge Cases

Implement a singly linked list from scratch. Practice data structure design, pointer manipulation, and edge case handling through TDD.

Intermediate 30–60 min

Design

Master TDD with the Mars Rover Kata. Learn to implement a Mars rover navigation system using test-driven development. Great for practicing movement logic and TDD techniques.

Intermediate 30–60 min

Refactoring

Master TDD with the Maze Walker Kata. Learn to implement maze navigation logic using test-driven development. Great for practicing pathfinding algorithms and TDD techniques.

Intermediate 30–60 min

StatePerformance

Master TDD with the Memory Cache Kata. Learn to implement a caching system using test-driven development. Great for practicing memory management and TDD techniques.

Intermediate 30–60 min

Business LogicBoundariesValidationEdge Cases

Implement a pagination system that handles page calculations, boundary conditions, and navigation controls. An extremely common real-world problem solved through TDD.

Intermediate 30–60 min

DesignState

Practice TDD with the Parking Lot Kata. Learn to implement parking lot management logic using test-driven development. Great for practicing state management and TDD fundamentals.

Intermediate 30–60 min

ValidationSecurity

Master TDD with the Password Kata. Learn to implement password validation and security logic using test-driven development. Great for practicing validation and TDD techniques.

Intermediate 30–60 min

Design

Practice TDD with the Robot Factory Kata. Learn to implement robot factory logic using test-driven development. Great for practicing object-oriented design and TDD techniques.

Intermediate 30–60 min

StateBusiness Rules

Practice TDD with the Shopping Cart Kata. Learn to implement a shopping cart system using test-driven development. Great for practicing business rules, state management, and validation.

Intermediate 30–60 min

State

Practice TDD with the Social Network Kata. Learn to implement social network features using test-driven development. Great for practicing data structures and TDD techniques.

Intermediate 30–60 min

Strings

Practice TDD with the String Calculator Kata. Learn to build a calculator that parses and adds numbers from a string using test-driven development. Perfect for TDD practice.

Intermediate 30–60 min

RefactoringLegacy CodeStrings

Refactor a working but messy tennis scoring implementation. Practice identifying code smells, extracting methods, and improving readability without changing behavior.

Intermediate 30–60 min

State

Master TDD with the Tennis Score Kata. Learn to implement tennis scoring rules using test-driven development. Great for practicing state management and TDD techniques.

Intermediate 30–60 min

Algorithms

Master TDD with the Timesheet Calculator Kata. Learn to implement timesheet calculation logic using test-driven development. Great for practicing date/time handling and TDD techniques.

Intermediate 30–60 min

ParsingStrings

Practice TDD with the URL Parts Kata. Learn to parse and extract parts of a URL using test-driven development. Great for practicing string parsing and TDD techniques.

Intermediate 30–60 min

Strings

Master TDD with the URL Shortener Kata. Learn to implement a URL shortening service using test-driven development. Great for practicing web development and TDD techniques.

Intermediate 30–60 min

Strings

Practice TDD with the Word Wrap Kata. Learn to implement text wrapping functionality using test-driven development. Perfect for practicing string manipulation and TDD fundamentals.

Advanced 60–90 min

Algorithms

Practice TDD with the Bingo Kata. Learn to implement bingo game logic using test-driven development. Great for practicing randomization, game rules, and TDD fundamentals.

Advanced 60–90 min

Edge CasesState

Practice the Bowling Game Kata with TDD. Learn how to implement a bowling score calculator using test-driven development techniques. Perfect for TDD beginners and intermediate developers.

Advanced 60–90 min

Refactoring

Practice TDD with the Calc Refactor Kata. Learn to refactor a calculator implementation using test-driven development. Great for practicing refactoring, code quality, and TDD techniques.

Advanced 60–90 min

Design PatternsStateMockingBoundariesEdge Cases

Implement the circuit breaker resilience pattern. Practice TDD with state machines, mocking external dependencies, and time-based transitions.

Advanced 60–90 min

AlgorithmsEdge CasesBoundariesRefactoringDesign Patterns

Build a query engine that reads CSV data and supports filtering, sorting, and aggregation. Practice TDD with data processing, parsing, and complex business logic.

Advanced 60–90 min

Design PatternsStateBusiness LogicBoundaries

Build an event-sourced system where state is derived from a sequence of events. Practice immutable data, event replay, projections, and temporal queries through TDD.

Advanced 60–90 min

Business LogicValidationStateEdge Cases

Build an expense report system with approval rules, spending limits, and policy enforcement. Practice business logic, validation, and state transitions through TDD.

Advanced 60–90 min

Algorithms

Master TDD with the Fluent Calculator Kata. Learn to implement a fluent interface calculator using test-driven development. Great for practicing chaining methods and TDD techniques.

Advanced 60–90 min

StateAlgorithms

Practice TDD with the Game of Life Kata. Learn to implement Conway's Game of Life using test-driven development. Great for practicing grid-based algorithms and state management.

Advanced 60–90 min

RefactoringEdge CasesLegacy Code

The most famous refactoring kata. Add a new feature to a messy legacy codebase without breaking existing behavior. Practice characterization testing and incremental refactoring.

Advanced 60–90 min

Business LogicDesign PatternsEdge CasesValidation

Build a tower defense combat system with color-based damage rules, leveling, and health tracking. Practice TDD with complex rule tables and object interactions.

Advanced 60–90 min

AlgorithmsBusiness LogicEdge CasesIncremental Design

Calculate optimal book pricing with tiered discounts for unique title sets. A famous optimization kata where greedy algorithms fail and intelligent grouping wins.

Advanced 60–90 min

StateValidation

Practice TDD with the Laundry Reservation Kata. Learn to implement laundry reservation logic using test-driven development. Great for practicing scheduling, validation, and TDD techniques.

Advanced 60–90 min

AlgorithmsEdge CasesBoundariesRefactoring

Build a Markdown-to-HTML parser incrementally using TDD. Practice parsing, string manipulation, and handling nested formatting rules.

Advanced 60–90 min

ConcurrencyDesign PatternsBoundariesEdge Cases

Deliver 1 million presents using concurrent worker threads with queue limits, resource pooling, and cost optimization. A challenging kata for practicing concurrency, synchronization, and TDD.

Advanced 60–90 min

Algorithms

Master TDD with the Poker Hands Kata. Learn to implement poker hand evaluation using test-driven development. Great for practicing algorithms, ranking logic, and TDD techniques.

Advanced 60–90 min

AlgorithmsMockingBoundariesStateDesign Patterns

Build a rate limiter that controls request throughput using the sliding window algorithm. Practice TDD with time-based logic, mocking, and boundary conditions.

Advanced 60–90 min

MockingDesign PatternsBoundariesIncremental Design

Build a mock object framework from scratch. Practice meta-programming, interface verification, and deep understanding of test doubles through TDD.

Advanced 60–90 min

Design PatternsIncremental DesignBoundaries

Build a unit testing framework from scratch — test discovery, assertions, and result reporting. The ultimate meta-kata: use TDD to build a TDD tool.

Advanced 60–90 min

StateAlgorithmsBoundariesEdge Cases

Implement the classic Snake game logic. Practice state management, direction handling, collision detection, and game loop design through TDD.

Advanced 60–90 min

AlgorithmsDesign PatternsEdge CasesRefactoring

Build a chainable string transformation pipeline. Practice TDD with method chaining, edge cases, and complex string manipulation.

Advanced 60–90 min

Business LogicDesign PatternsIncremental DesignEdge Cases

Implement a checkout system with complex pricing rules — buy-one-get-one, bulk discounts, weighted items. Dave Thomas's classic kata for practicing incremental design with evolving requirements.

Advanced 60–90 min

StringsAlgorithms

Master TDD with the Text Justification Kata. Learn to implement text justification logic using test-driven development. Great for practicing string manipulation and TDD techniques.

Advanced 60–90 min

Business LogicStateValidationMockingEdge Cases

Build a video rental system with user management, tiered pricing, priority points, wishlists, and donations. A rich domain kata for practicing TDD with multiple interacting business rules.

Advanced 60–90 min

StateAlgorithms

Practice TDD with the Weather Station Kata. Learn to implement weather data processing and analysis using test-driven development. Great for practicing data processing and algorithms.

Advanced 60–90 min

StateBusiness LogicIncremental DesignEdge Cases

Model survivors in a zombie apocalypse with wounds, equipment, leveling, and skill trees. A multi-step kata that builds complexity incrementally — perfect for practicing TDD discipline.