Concept guides
ReadGuideTrackTopicLevelTime
Graph traversal (BFS & DFS)EasyCodingGraphs and treesCodingGraphs and treesEasy3 minCritical path schedulingMediumCodingGraphs and treesCodingGraphs and treesMedium4 minTries & suffix structuresMediumCodingGraphs and treesCodingGraphs and treesMedium3 minBinary search trees & balancingMediumCodingGraphs and treesCodingGraphs and treesMedium3 minTopological sortMediumCodingGraphs and treesCodingGraphs and treesMedium3 minBinary trees & traversalMediumCodingGraphs and treesCodingGraphs and treesMedium3 minMinimum spanning treesMediumCodingGraphs and treesCodingGraphs and treesMedium3 minUnion-Find (DSU)HardCodingGraphs and treesCodingGraphs and treesHard3 minShortest paths (Dijkstra & friends)HardCodingGraphs and treesCodingGraphs and treesHard3 minSegment trees & Fenwick treesHardCodingGraphs and treesCodingGraphs and treesHard3 minAdvanced graph algorithmsHardCodingGraphs and treesCodingGraphs and treesHard3 minQuery predicate evaluatorHardCodingGraphs and treesCodingGraphs and treesHard4 min
Concurrency primitivesEasyCodingConcurrencyCodingConcurrencyEasy3 minConcurrency bugs in reviewMediumCodingConcurrencyCodingConcurrencyMedium3 minBarrier synchronizationMediumCodingConcurrencyCodingConcurrencyMedium3 minConcurrency and interleavingMediumCodingConcurrencyCodingConcurrencyMedium3 minConnection pool lock starvationMediumCodingConcurrencyCodingConcurrencyMedium3 minDeadlock victim selectionMediumCodingConcurrencyCodingConcurrencyMedium3 minLazy initialization raceMediumCodingConcurrencyCodingConcurrencyMedium3 minMissing locks on compound operationsMediumCodingConcurrencyCodingConcurrencyMedium3 minNon-atomic counterMediumCodingConcurrencyCodingConcurrencyMedium3 minSemaphore permit leaksMediumCodingConcurrencyCodingConcurrencyMedium4 minSemaphores (permits)MediumCodingConcurrencyCodingConcurrencyMedium3 minShared mutable state (the Rust way)MediumCodingConcurrencyCodingConcurrencyMedium3 minSingle-threaded saturationMediumCodingConcurrencyCodingConcurrencyMedium3 minThread-pool assignment orderMediumCodingConcurrencyCodingConcurrencyMedium3 minCheck-then-act (TOCTOU)MediumCodingConcurrencyCodingConcurrencyMedium3 minData racesMediumCodingConcurrencyCodingConcurrencyMedium3 minPrompt craft for everyday workMediumCodingConcurrencyCodingConcurrencyMedium4 minConcurrent modificationMediumCodingConcurrencyCodingConcurrencyMedium3 minTwo writers, one resourceHardCodingConcurrencyCodingConcurrencyHard7 minAtomic writes: temp file then renameHardCodingConcurrencyCodingConcurrencyHard4 minLivelockHardCodingConcurrencyCodingConcurrencyHard3 minProducer-consumer (bounded buffer)HardCodingConcurrencyCodingConcurrencyHard3 minThe stale leader problemHardCodingConcurrencyCodingConcurrencyHard4 minRace conditions and how a lock fixes themHardCodingConcurrencyCodingConcurrencyHard4 minDeadlock and lock orderingHardCodingConcurrencyCodingConcurrencyHard3 minTwo writers, one file, a lost updateHardCodingConcurrencyCodingConcurrencyHard4 minWorker thread pool exhaustionHardCodingConcurrencyCodingConcurrencyHard4 minFire and forget (async)HardCodingConcurrencyCodingConcurrencyHard3 minLock orderingHardCodingConcurrencyCodingConcurrencyHard3 minStale reads and memory visibilityHardCodingConcurrencyCodingConcurrencyHard3 minLock ordering (deadlock avoidance)HardCodingConcurrencyCodingConcurrencyHard3 minThe event loop (cooperative scheduling)HardCodingConcurrencyCodingConcurrencyHard3 minAwait holding a lockHardCodingConcurrencyCodingConcurrencyHard3 minConcurrency backpressureHardCodingConcurrencyCodingConcurrencyHard3 minConnection pool race conditionsHardCodingConcurrencyCodingConcurrencyHard3 minDeadlock (cyclic acquisition)HardCodingConcurrencyCodingConcurrencyHard3 minDurabilityHardCodingConcurrencyCodingConcurrencyHard4 minMutex contentionHardCodingConcurrencyCodingConcurrencyHard4 min