Backend Developer
Performance and debugging questions
77 questions on Performance and debugging for backend developers, easiest first.
Easy 9
Medium 32
- The N+1 query problemmedium
- Offset or cursor paginationmedium
- Two awaits that could run togethermedium
- A 64-bit id changes after parsingmedium
- Index ignored for lower(email)medium
- Benefit of INCLUDE in an indexmedium
- Fine average, unhappy usersmedium
- Docker rebuild reinstalls everythingmedium
- Async callback inside forEachmedium
- A query answered from the index alonemedium
- A list page loads huge rowsmedium
- Importing 100,000 rows slowlymedium
- A slow aggregation pipelinemedium
- 500 Redis calls per requestmedium
- One huge key slows Redismedium
- Average read time with a 90% hit ratiomedium
- Kadane on all-negative numbersmedium
- Coin change when the amount cannot be mademedium
- Cache key that forgets an argumentmedium
- All results come out emptymedium
- Bug in a parent-child BST checkmedium
- Bug in a root-to-leaf path summedium
- When to mark a node as visited in BFSmedium
- A JavaScript BFS that gets slowmedium
- Flood fill with the same colourmedium
- Changing a key after putting it in a setmedium
- Caching data per object without leaksmedium
- Joining two lists in memorymedium
- Array or map for counting small integersmedium
- Finding p95 from 20 timingsmedium
- Pods restart every few hoursmedium
- Why look at p99 latencymedium
Hard 36
- Cache stampede on a hot keyhard
- One slow route freezes Node.jshard
- Connection pools and autoscalinghard
- NOT IN with a NULL in the listhard
- Table bloat that VACUUM will not fixhard
- Work continues after the client gives uphard
- Trusting a Bloom filter answerhard
- Index for the few pending rowshard
- Inserts slow down with UUID keyshard
- return versus return await in tryhard
- Pool exhausted during paymentshard
- Concurrent requests from throughputhard
- Every page load counts 80 million rowshard
- Kadane returns 0 for all negativeshard
- Removing items while looping forwardhard
- Bug in a minimum length windowhard
- Binary search that never endshard
- One counter row slows every salehard
- A bad query takes the database downhard
- A Lua script stalls every clienthard
- Deleting old log rows every nighthard
- A query with 20,000 ids in IN (...)hard
- Memo that never hits in JavaScripthard
- A memo cache in a long-running serverhard
- Edit distance on two large fileshard
- Bug in a grid word searchhard
- Fixing a BST with two swapped keyshard
- Visited set for a 5000 × 5000 gridhard
- Kahn’s algorithm hangs on duplicate edgeshard
- Word counts that break on "constructor"hard
- Prefix count updated too earlyhard
- Bug in an at-most-two-distinct windowhard
- Avoiding resize pauses in a HashMaphard
- Array or map for sparse large IDshard
- Deleting from a dict while loopinghard
- Hedging slow requestshard