Debug
Debugging sessions are an increasingly common part of the software engineering interview process. Companies use them to evaluate how you navigate unfamiliar codebases, reason about unexpected behavior, and isolate root causes under time pressure — skills that are hard to assess with traditional algorithmic questions.
Practice with 69 real-world bugs across TypeScript and Python. Each exercise drops you into a buggy codebase with a symptom description and failing tests. Find the bug, fix it, and run the tests to verify.
Debug Progress0 / 69 fixed
easy: 0/32medium: 0/27hard: 0/10
Dispatch (Webhooks)
Support Agent (AI)
Course Catalog
Bug 4: Recommendations in Wrong Ordersort-logic
TSeasy
Bug 5: Level 1 Courses Get Zero Scoreoff-by-one
TSeasy
Bug 7: Status Filter Returns All Coursesdecorator
TSeasy
Bug 10: "NaN%" in Certification Detailsnull-safety
TSeasy
Bug 11: Test Expects Wrong Score for Level 1misleading-test
TSeasy
Bug 12: Date Parsing Test Fails in Different Timezonestimezone
TSeasy
Bug 1: Strategy Selection Has No Effecttype-mismatch
TSmedium
Bug 2: Skill-Gap Scores Are Absurdly Highinheritance
TSmedium
Bug 3: Error Handler Crashes with TypeErrorthis-binding
TSmedium
Bug 6: Deadline Penalty Applied to Wrong Coursescomparison-logic
TSmedium
Bug 9: Status Filter Doesn't Re-fetchreact-hooks
TSmedium
Bug 8: Experimental Strategy Crashes on Results Pagelsp-violation
TShard
Expense Tracker
Bug 3: CSV Import Amounts Are Not Numberstype-coercion
PYeasy
Bug 5: Date Range Excludes the End Dateoff-by-one
PYeasy
Bug 6: Average Daily Spending Loses Centsoperator
PYeasy
Bug 1: Tags Leak Between Expensesmutable-default
PYmedium
Bug 2: Duplicating an Expense Shares Metadatashallow-copy
PYmedium
Bug 7: Removing Expired Budgets Crashesmutate-during-iteration
PYmedium
Bug 9: Can't Deduplicate Expenses with set()hashability
PYmedium
Bug 4: Category Filters All Match the Same Categorylate-binding
PYhard
Bug 8: CSV Export Silently Produces Empty Filesilent-exception
PYhard
Bug 10: Monthly Report Crashes on Any Datascope
PYhard
Bug 11: Monthly Total Test Passes with Wrong Valuelogic-error
PYhard
Bug 12: Large Expense Total Is Always $0generator-exhaustion
PYhard
React Fitness
Bug 6: Weight Unit Shows Empty Instead of "kg"optional-chaining
TSeasy
Bug 11: Calories Burned Returns Zero Without Body Weightdefault-parameter
TSeasy
Bug 1: Workout Filter Changes Are Ignoredstale-closure
TSmedium
Bug 2: "Add Set" Button Requires Two Clicksstale-closure
TSmedium
Bug 3: Workout Timer Accelerates Over Timecleanup
TSmedium
Bug 4: Leaderboard Sorting Recomputes Every Renderreference-equality
TSmedium
Bug 7: Exercise Type Filter Shows Zero Resultsenum-mismatch
TSmedium
Bug 8: Exercise Notes Get Jumbled After Reorderinglist-key
TSmedium
Bug 10: Search Bar Debounce Always Sends Empty Stringevent-pooling
TSmedium
Bug 5: Workout Dates Crash When Formattedtype-cast
TShard
Bug 9: Memoized ExerciseItem Re-renders on Every Parent Rendermemoization
TShard
Bug 12: Filter Shows Stale Results From Slow Previous Requestrace-condition
TShard
Issue Triage
Bug 1: Field Name Mismatch Silently Ignores Policy Selectiontype-mismatch
TSeasy
Bug 4: Sort Comparator Produces Ascending Instead of Descending Ordersort-logic
TSeasy
Bug 5: Off-by-One Error Makes Severity 1 Score Zerooff-by-one
TSeasy
Bug 6: SLA Penalty Applied to Non-Overdue Incidents Instead of Overduecomparison-logic
TSeasy
Bug 7: Decorator Delegates to Wrong Methoddecorator
TSeasy
Bug 10: Accessing Non-Existent Metadata Field Produces NaNnull-safety
TSeasy
Bug 11: Test Written to Match Buggy Behaviormisleading-test
TSeasy
Bug 12: Test Uses Local Time Instead of UTCtimezone
TSeasy
Bug 2: Missing Severity Clamp in Safety-Critical Policy Overrideinheritance
TSmedium
Bug 3: Lost this Context When Passing Method as Callbackthis-binding
TSmedium
Bug 8: Template Method Override Omits Required breakdown Arraylsp-violation
TSmedium
Bug 9: React useEffect Missing Dependency Causes Stale Closurereact-hooks
TSmedium
Music Streamer
Bug 2: Factory Registry Maps Podcast to MusicVideofactory-pattern
TSeasy
Bug 4: setMonth() Used Instead of setMinutes() for Durationdate-api
TSeasy
Bug 5: Off-by-One: >= 0 Always True for Array Lengthcomparison-logic
TSeasy
Bug 8: Inverted Comparison Gives Bonus to Wrong Artistscomparison-logic
TSeasy
Bug 10: Accessing .map() on Potentially Undefined setlistnull-safety
TSeasy
Bug 11: Sort Comparator a - b Sorts Ascending Instead of Descendingsort-logic
TSeasy
Bug 1: Constructor Calls Abstract Method Before Subclass Initinheritance
TSmedium
Bug 6: Missing Dependencies in useEffect Prevents Filter Updatesreact-hooks
TSmedium
Bug 7: .catch(this.handleError) Loses this Contextthis-binding
TSmedium
Bug 9: LoggingRepository Calls findAll() Instead of findByType()decorator
TSmedium
Bug 12: Test Asserts Months Instead of Minutes (Validates Bug 4)misleading-test
TSmedium
Bug 3: Polymorphic this Causes Double Discount in Subclasspolymorphism
TShard