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.
AlgorithmsStringsValidation
Detect anagrams, group words by anagram sets, and find anagram pairs. Practice string manipulation, sorting, hashing, and set operations through TDD.
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.
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.
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.
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.
Strings
Practice TDD with the Greeting Kata. Learn to implement a personalized greeting system using test-driven development. Perfect for beginners learning TDD fundamentals.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
StateValidationEdge CasesBoundaries
Implement a bank account with transaction history, overdraft protection, and statement printing. Practice TDD with state management and business rules.
AlgorithmsParsingValidationEdge Cases
Parse ASCII art digits into account numbers. Practice pattern recognition, string parsing, validation with checksums, and error correction through TDD.
Business LogicMockingBoundariesValidation
Build a blog backend with posts, comments, tags, and authorization rules. Practice TDD with mocking, faking database dependencies, and enforcing ownership boundaries.
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.
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.
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.
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.
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.
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.
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.
Data StructuresAlgorithmsEdge Cases
Implement a singly linked list from scratch. Practice data structure design, pointer manipulation, and edge case handling through TDD.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
RefactoringLegacy CodeStrings
Refactor a working but messy tennis scoring implementation. Practice identifying code smells, extracting methods, and improving readability without changing behavior.
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.
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.
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.
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.
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.
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.
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.
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.
Design PatternsStateMockingBoundariesEdge Cases
Implement the circuit breaker resilience pattern. Practice TDD with state machines, mocking external dependencies, and time-based transitions.
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.
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.
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.
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.
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.
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.
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.
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.
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.
AlgorithmsEdge CasesBoundariesRefactoring
Build a Markdown-to-HTML parser incrementally using TDD. Practice parsing, string manipulation, and handling nested formatting rules.
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.
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.
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.
MockingDesign PatternsBoundariesIncremental Design
Build a mock object framework from scratch. Practice meta-programming, interface verification, and deep understanding of test doubles through TDD.
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.
StateAlgorithmsBoundariesEdge Cases
Implement the classic Snake game logic. Practice state management, direction handling, collision detection, and game loop design through TDD.
AlgorithmsDesign PatternsEdge CasesRefactoring
Build a chainable string transformation pipeline. Practice TDD with method chaining, edge cases, and complex string manipulation.
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.
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.
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.
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.
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.