Cost: count the work and the memoryArrays and strings: keep order and boundariesSets: remember membershipMaps: remember earlier workStacks: keep unresolved workQueues and deques: control who goes nextLinked lists: preserve the reachable chainTrees: carry context down, combine answers upHeaps: keep the next best candidateHeaps: keep the next best candidateTries: share prefixes without losing whole wordsGraphs: visit once, then track prerequisitesGraphs: visit once, then track prerequisitesUnion-find: track components as links arriveWeighted paths: expand the cheapest candidateSorting: pay once to expose orderSorted data: binary search and intervalsSorted data: binary search and intervalsTwo pointers: discard work with a reasonWindows: move boundaries, avoid rescanningPrefix sums: count possible startsGreedy choices: prove the local step is safeSearch: choose, recurse, undoSearch: choose, recurse, undoSearch: choose, recurse, undoDynamic programming: define a smaller problemBit operations: represent independent flagsChoose the structure from the repeated questionTwo sum: remember the useful pastValid anagram: equality of multiplicitiesGroup anagrams: canonical keysLongest unique window: move the boundary forwardMinimum covering window: track unmet demandCount target-sum subarrays: differences of prefixesProduct except self: combine independent summariesLongest consecutive run: expand only from startsMerge intervals: preserve the covered setMeeting room capacity: count simultaneous demandBinary search boundary: find the first true positionRotated array search: identify the ordered halfShipping capacity: search a feasible answerReverse a linked list: keep the unprocessed suffix reachableReverse a linked list: keep the unprocessed suffix reachableReverse a linked list: keep the unprocessed suffix reachableFind where a linked list loops back on itselfFind where a linked list loops back on itselfMerge sorted lists: splice only a safe frontierTree level order: keep the next frontier separateTree level order: keep the next frontier separateValidate a BST: carry every ancestor constraintValidate a BST: carry every ancestor constraintLowest common ancestor: return presence as well as a candidateLowest common ancestor: return presence as well as a candidateTree diameter: return one branch, combine two locallyTree diameter: return one branch, combine two locallyTree diameter: return one branch, combine two locallyDependency orderDependency orderWord ladderWord ladderConnectivity under added linksConnectivity under added linksShortest path through a gridShortest path through a gridCheapest route with nonnegative costsCheapest route with nonnegative costsTop k observations in a streamTop k observations in a streamMerge k sorted streamsMerge k sorted streamsPrefix autocompletePrefix autocompleteSearch for unique combinationsSearch for unique combinationsFind a word without reusing a cellFind a word without reusing a cellMinimum coins with a witnessMinimum coins with a witnessLongest increasing subsequenceLongest increasing subsequenceEdit distanceEdit distanceEdit distanceCount valid digit decodingsCount valid digit decodingsDays until a warmer temperatureDays until a warmer temperatureLargest rectangle in a histogramLargest rectangle in a histogramParse and evaluate a policy expressionParse and evaluate a policy expressionParse and evaluate a policy expressionMaintain an exact streaming medianMaintain an exact streaming medianMake code changes reviewable and recoverableMake code changes reviewable and recoverableMake code changes reviewable and recoverableMake code changes reviewable and recoverableSpecify and verify an AI-generated changeSpecify and verify an AI-generated changeSpecify and verify an AI-generated changeSpecify and verify an AI-generated changeSpecify tag behavior for independent implementersSpecify tag behavior for independent implementersEvaluate generated rate-limiter code with a simple referenceBuild reusable AI instructions and evaluate transferCollect evidence about changed behavior and affected callersRecord and revisit uncertain engineering decisionsRewrite private commit history to explain a changeSplit a tagging feature into runnable changesSplit a tagging feature into runnable changesDemonstrate CI enforcement in a disposable repositoryAutomate deterministic review rules and retain human judgmentCheck the combined behavior of independently valid changesFollow an HTTP request from validation to durable stateFollow an HTTP request from validation to durable stateFollow an HTTP request from validation to durable stateValidate provider responses before returning an API resultValidate provider responses before returning an API resultValidate provider responses before returning an API resultDistinguish I/O overlap from parallel CPU executionDistinguish I/O overlap from parallel CPU executionFetch a bounded batch while preserving order and partial resultsFetch a bounded batch while preserving order and partial resultsFetch a bounded batch while preserving order and partial resultsBounded blocking queue with shutdownBounded blocking queue with shutdownBounded blocking queue with shutdownBound accepted work and make executor shutdown predictableBound accepted work and make executor shutdown predictableBound accepted work and make executor shutdown predictableTrace requests through a bookmark APITrace requests through a bookmark APITrace requests through a bookmark APITrace requests through a bookmark APIEnforce a single deadline across API dependenciesEnforce a single deadline across API dependenciesBuild an SSRF-resistant link preview fetcherBuild an SSRF-resistant link preview fetcherEvolve tag responses without breaking old clientsMove title lookup into restartable background jobsMove title lookup into restartable background jobsBuild a link monitor with durable history and change alertsBuild a link monitor with durable history and change alertsBuild a link monitor with durable history and change alertsBuild a link monitor with durable history and change alertsBuild duplicate-safe form submission and CSV exportBuild duplicate-safe form submission and CSV exportModel shared data and enforce changes with database constraintsPrevent overselling and write skew with the right transaction boundaryPrevent overselling and write skew with the right transaction boundaryPrevent overselling and write skew with the right transaction boundaryPrevent overselling and write skew with the right transaction boundaryStore receipts with reviewable extraction and correctionsPractice schema design, query plans, concurrent writes and restoreFrontend state and API integrationKeep browser drafts, saved data and search results consistentKeep browser drafts, saved data and search results consistentKeep browser drafts, saved data and search results consistentKeep browser drafts, saved data and search results consistentKeep browser drafts, saved data and search results consistentSearch race · the latest user intent winsSearch race · the latest user intent winsSearch race · the latest user intent winsFull stack · one user action across every boundaryFull stack · one user action across every boundaryFull stack · one user action across every boundaryBookmark editor · preserve the user's next editBookmark editor · preserve the user's next editBookmark editor · preserve the user's next editBookmark editor · preserve the user's next editBookmark editor · preserve the user's next editBuild a shared reading-list UI with private reading stateBuild a shared reading-list UI with private reading statePractice visible states, browser ownership, accessibility and form boundariesChoose checks that reveal the behavior a change can breakPreserve zero when applying a quantity updatePreserve zero when applying a quantity updateRepair decimal amounts and restart recovery in a transaction importerRepair decimal amounts and restart recovery in a transaction importerRepair decimal amounts and restart recovery in a transaction importerReview three importer patches against data and retry contractsReview three importer patches against data and retry contractsMeasure whether existing checks detect real defectsProtect API response types, units and compatibilityReproduce and remove order-dependent failuresMeasure API capacity with controlled arrival ratesMeasure API capacity with controlled arrival ratesDesign and run a synthetic reading-list journeyDesign and run a synthetic reading-list journeyEnforce who can act on each resource and what the server can reachEnforce tenant access in APIs, caches and exportsEnforce tenant access in APIs, caches and exportsRecord permission changes with durable audit evidenceRecord permission changes with durable audit evidencePrevent overlapping shifts and enforce manager accessDesign a service from its contract, workload and failure limitsDesign a service from its contract, workload and failure limitsDesign a service from its contract, workload and failure limitsDesign a service from its contract, workload and failure limitsDesign a service from its contract, workload and failure limitsDraw a bookmark request, then change its failure boundaryDraw a bookmark request, then change its failure boundaryDraw a bookmark request, then change its failure boundaryDraw a bookmark request, then change its failure boundaryDraw a bookmark request, then change its failure boundaryDraw a bookmark request, then change its failure boundaryChoose architecture mechanisms from the boundary they enforceChoose architecture mechanisms from the boundary they enforceChoose architecture mechanisms from the boundary they enforceChoose architecture mechanisms from the boundary they enforceChoose architecture mechanisms from the boundary they enforceChoose architecture mechanisms from the boundary they enforceChoose architecture mechanisms from the boundary they enforceChoose architecture mechanisms from the boundary they enforceChoose architecture mechanisms from the boundary they enforceChoose architecture mechanisms from the boundary they enforceChoose architecture mechanisms from the boundary they enforceChoose architecture mechanisms from the boundary they enforceChoose architecture mechanisms from the boundary they enforceChoose architecture mechanisms from the boundary they enforceBuild a private bookmark API with ownership and version checksBuild a private bookmark API with ownership and version checksEnforce API quotas across concurrent gatewaysEnforce API quotas across concurrent gatewaysReserve concert seats with expiring holdsReserve concert seats with expiring holdsBuild chat with durable messages and reconnect recoveryBuild chat with durable messages and reconnect recoveryBuild a following feed with current access checksBuild a following feed with current access checksProcess uploads and publish complete video renditionsProcess uploads and publish complete video renditionsBuild checkout that recovers from uncertain paymentsBuild checkout that recovers from uncertain paymentsBuild checkout that recovers from uncertain paymentsDeliver notifications with preferences and priorityDeliver notifications with preferences and priorityBuild a versioned shared document editorBuild a versioned shared document editorDeliver signed webhooks with retries and replayDeliver signed webhooks with retries and replayDesign a URL shortenerDesign a URL shortenerAssign drivers safely with expiring offersAssign drivers safely with expiring offersBuild restaurant discovery and authoritative checkoutBuild restaurant discovery and authoritative checkoutReserve rooms and handle recurring local timesReserve rooms and handle recurring local timesBuild resumable uploads and authorized video playbackBuild resumable uploads and authorized video playbackCollect news feeds with freshness and deduplicationCollect news feeds with freshness and deduplicationBuild versioned API routing and admission policiesBuild versioned API routing and admission policiesRun programming submissions inside isolated workersRun programming submissions inside isolated workersPractice workload estimates, architecture choices and recovery plansProtect shared storage with bounded cache loads and consistent readsProtect shared storage with bounded cache loads and consistent readsProtect shared storage with bounded cache loads and consistent readsProtect shared storage with bounded cache loads and consistent readsProtect shared storage with bounded cache loads and consistent readsProtect shared storage with bounded cache loads and consistent readsTrace LRU eviction before implementing its linked orderImplement LRU without an ordered-map helperImplement LRU without an ordered-map helperExpiring key-value storeExpiring key-value storeBound cache misses across instances and preserve fresh readsBound cache misses across instances and preserve fresh readsBound cache misses across instances and preserve fresh readsBound cache misses across instances and preserve fresh readsEnforce revocation even when a CDN already has the contentEnforce revocation even when a CDN already has the contentEnforce revocation even when a CDN already has the contentCount event-time windows with late arrivalsCount event-time windows with late arrivalsKeep job status current without repeating completed workKeep job status current without repeating completed workKeep job status current without repeating completed workKeep job status current without repeating completed workDistribute a hot tenant while preserving event identity and orderingDistribute a hot tenant while preserving event identity and orderingDistribute a hot tenant while preserving event identity and orderingDistribute a hot tenant while preserving event identity and orderingSynchronize files with resumable uploads and conflictsSynchronize files with resumable uploads and conflictsSearch documents without leaking revoked contentSearch documents without leaking revoked contentCompute trending topics from duplicate and late eventsCompute trending topics from duplicate and late eventsIngest events with durable acceptance and replayIngest events with durable acceptance and replayBuild a durable crawler with per-host limitsBuild a durable crawler with per-host limitsBuild typeahead with stale-response protectionBuild typeahead with stale-response protectionProtect a database with versioned cache fillsProtect a database with versioned cache fillsImplement replicated writes and fenced leadershipImplement replicated writes and fenced leadershipAggregate click events with late arrivals and reconciliationAggregate click events with late arrivals and reconciliationBuild ingestion with bounded backlog and explicit rejectionBuild ingestion with bounded backlog and explicit rejectionPractice cache protection, durable handoff and replica recoveryFind the bottleneck and measure cost per useful operationFind the bottleneck and measure cost per useful operationFind the bottleneck and measure cost per useful operationFind the bottleneck and measure cost per useful operationFind the bottleneck and measure cost per useful operationOne small server: the stack, what broke, and what fixed itOne small server: the stack, what broke, and what fixed itOne small server: the stack, what broke, and what fixed itOne small server: the stack, what broke, and what fixed itOne small server: the stack, what broke, and what fixed itOne small server: the stack, what broke, and what fixed itOne small server: the stack, what broke, and what fixed itOne small server: the stack, what broke, and what fixed itOne small server: the stack, what broke, and what fixed itOne small server: the stack, what broke, and what fixed itOne small server: the stack, what broke, and what fixed itOne small server: the stack, what broke, and what fixed itOne small server: the stack, what broke, and what fixed itOne small server: the stack, what broke, and what fixed itOne small server: the stack, what broke, and what fixed itReserve capacity for rollout, zone loss and backlog recoveryReserve capacity for rollout, zone loss and backlog recoveryReserve capacity for rollout, zone loss and backlog recoveryReserve capacity for rollout, zone loss and backlog recoveryReject excess API work before queues grow without boundReject excess API work before queues grow without boundPractice profiling, representative load and unit-cost decisionsBuild once and supply configuration safely at runtimeBuild once and supply configuration safely at runtimeBuild once and supply configuration safely at runtimeBuild once and supply configuration safely at runtimeBuild once and supply configuration safely at runtimeProcess duplicate SQS jobs with one conditional DynamoDB resultProcess duplicate SQS jobs with one conditional DynamoDB resultProcess duplicate SQS jobs with one conditional DynamoDB resultPractice reproducible builds, runtime configuration and rollbackDeploy compatible versions and control feature exposureDeploy compatible versions and control feature exposureDeploy compatible versions and control feature exposureDeploy compatible versions and control feature exposureDeploy compatible versions and control feature exposureRoll out routing configuration without activating unusable backendsRoll out routing configuration without activating unusable backendsRoll out routing configuration without activating unusable backendsRoll out routing configuration without activating unusable backendsRelease invoice changes with stable cohorts and rollbackRelease invoice changes with stable cohorts and rollbackDeploy from main and roll back compatible artifactsDeploy from main and roll back compatible artifactsPractice compatible releases, deployment identity and recoveryUse logs, metrics and traces to explain one slow requestUse logs, metrics and traces to explain one slow requestUse logs, metrics and traces to explain one slow requestUse logs, metrics and traces to explain one slow requestFind database-pool waiting in slow API requestsFind database-pool waiting in slow API requestsFind database-pool waiting in slow API requestsIngest and query metrics with bounded cardinalityIngest and query metrics with bounded cardinalityDiagnose a reading-list incident from existing telemetryDiagnose a reading-list incident from existing telemetryPractice request tracing, diagnosis, metric budgets and samplingSet an error budget and bound retries during overloadSet an error budget and bound retries during overloadSet an error budget and bound retries during overloadSet an error budget and bound retries during overloadCalculate error budgets, retry amplification and recovery capacityCalculate error budgets, retry amplification and recovery capacityCalculate error budgets, retry amplification and recovery capacityBound retry load and reconcile a lost payment responseBound retry load and reconcile a lost payment responseBound retry load and reconcile a lost payment responseBound retry load and reconcile a lost payment responseMitigate an incident, verify recovery and complete the follow-upMitigate an incident, verify recovery and complete the follow-upMitigate an incident, verify recovery and complete the follow-upMitigate an incident, verify recovery and complete the follow-upMitigate an incident, verify recovery and complete the follow-upDiagnose stale work after the request-error alert clearsDiagnose stale work after the request-error alert clearsBuild restartable CSV export jobsBuild restartable CSV export jobsBuild restartable CSV export jobsSchedule reports without duplicate logical runsSchedule reports without duplicate logical runsDefine and calculate a user-facing save SLOImplement burn-rate alert and incident state rulesImplement burn-rate alert and incident state rulesBound retries across browser, API and SDK layersPrioritize API work within a fixed capacity budgetPrioritize API work within a fixed capacity budgetRecover a service trapped in expired work and retriesRecover a service trapped in expired work and retriesKeep bookmark saves usable when title lookup failsKeep bookmark saves usable when title lookup failsRehearse detection, rollback and service recoveryRehearse detection, rollback and service recoveryPractice incident decisions, recovery and completed corrective workMigrate live data while preserving writes, deletions and recoveryMigrate live data while preserving writes, deletions and recoveryMigrate live data while preserving writes, deletions and recoveryMigrate live data while preserving writes, deletions and recoveryMigrate live data while preserving writes, deletions and recoveryReject stale workers and recover uncertain external effectsReject stale workers and recover uncertain external effectsReject stale workers and recover uncertain external effectsCopy live rows while preserving new writes and deletionsCopy live rows while preserving new writes and deletionsCopy live rows while preserving new writes and deletionsMove write authority between shards and account for regional data lossMove write authority between shards and account for regional data lossMove write authority between shards and account for regional data lossMove write authority between shards and account for regional data lossMigrate tenant data with a resumable backfillMigrate tenant data with a resumable backfillDesign and rehearse regional write failoverDesign and rehearse regional write failoverErase account data across stores and in-flight workErase account data across stores and in-flight workMigrate tags across data, clients and workersMigrate tags across data, clients and workersPractice compatibility, shadow reads, adoption and retirementChoose the scope that removes repeated engineering workChoose the scope that removes repeated engineering workChoose the scope that removes repeated engineering workChoose the scope that removes repeated engineering workWrite a design document that supports a decisionWrite a design document that supports a decisionWrite a design document that supports a decisionWrite a design document that supports a decisionTurn recurring constraints into a usable technical strategyTurn recurring constraints into a usable technical strategyTurn recurring constraints into a usable technical strategyTurn recurring constraints into a usable technical strategyFind delivery bottlenecks and reduce dependency on one engineerFind delivery bottlenecks and reduce dependency on one engineerFind delivery bottlenecks and reduce dependency on one engineerFind delivery bottlenecks and reduce dependency on one engineerBuild a service template with overridable defaultsWrite a data-platform policy from concrete decisionsCompare a small export script with a custom platformEvaluate an AI feature and enforce task-level limitsEvaluate an AI feature and enforce task-level limitsEvaluate tag suggestions without hiding rare failures or outage costEvaluate tag suggestions without hiding rare failures or outage costEvaluate tag suggestions without hiding rare failures or outage costDraft support replies without granting tool authorityDraft support replies without granting tool authorityServe recommendations with safe fallback rankingServe recommendations with safe fallback rankingBuild a document assistant with current permissionsBuild a document assistant with current permissionsBuild evidence-backed answers with permission rechecksBuild evidence-backed answers with permission rechecksRequire exact human approval before agent actionsRequire exact human approval before agent actionsRoute extracted invoices through validation and reviewRoute extracted invoices through validation and reviewTrack AI evaluation evidence and serving versionsTrack AI evaluation evidence and serving versionsDrive your own desktop by voice, with a model that cannot invent an actionDrive your own desktop by voice, with a model that cannot invent an actionDrive your own desktop by voice, with a model that cannot invent an actionDrive your own desktop by voice, with a model that cannot invent an actionDecide whether an AI feature improves a reading listDecide whether an AI feature improves a reading listVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by useVisuals by usePractice · turn understanding into visible evidencePractice · turn understanding into visible evidenceAssessor · event consumerAssessor · event consumerAssessor · private export serviceAssessor · private export serviceAssessor · bookmark race schedulesAssessor · bookmark race schedulesAssessor · executor cancellation and deadlockAssessor · executor cancellation and deadlockAssessor · importer diagnosis and reviewAssessor · importer diagnosis and reviewConsume inventory events without counting replays twiceConsume inventory events without counting replays twiceDesign a private asynchronous export serviceDesign a private asynchronous export serviceBuild a bookmark editor that preserves typing during a saveBuild a bookmark editor that preserves typing during a saveBuild a bookmark editor that preserves typing during a saveImplement bounded report execution and shutdownImplement bounded report execution and shutdownRepair a transaction importer and explain each correctionRepair a transaction importer and explain each correctionChoose harder constraints after a small system worksStage 1: Build the shared reading-list applicationStage 2: Deploy, back up and recover the reading listStage 2: Deploy, back up and recover the reading listStage 2: Deploy, back up and recover the reading listStage 3: Add durable jobs and bounded cachingStage 3: Add durable jobs and bounded cachingStage 4: Add optional AI tag suggestionsStage 4: Add optional AI tag suggestionsStage 5: Migrate the reading list to stable tag IDsHow to use the curriculumDatabricks · senior backend / product engineeringDatabricks · senior backend / product engineeringDatabricks · senior backend / product engineeringDatabricks · senior backend / product engineeringMeta · senior product engineeringMeta · senior product engineeringMeta · senior product engineeringMeta · senior product engineeringObserve Inc. · senior backend / product engineeringObserve Inc. · senior backend / product engineeringObserve Inc. · senior backend / product engineeringObserve Inc. · senior backend / product engineeringOpenAI · senior product engineeringOpenAI · senior product engineeringOpenAI · senior product engineeringOpenAI · senior product engineeringReddit · senior product engineeringReddit · senior product engineeringReddit · senior product engineeringReddit · senior product engineering