Debugging
Systematically finding out why code doesn't do what you expect.
Backend Engineer track
Junior
Write correct code, ship small changes safely, ask good questions.
Core: start here
- DebuggerA tool to pause code, inspect variables and step through execution.
- DebuggingSystematically finding why code doesn't do what you expect.
- Minimal Reproducible ExampleThe smallest code that still shows the bug.
- Reading Error MessagesActually reading the error: the first and most skipped debugging step.
- Reproducing a BugGetting the bug to happen reliably before trying to fix it.
- Rubber Duck DebuggingExplaining the problem out loud until you spot the bug.
6 more junior concepts
- BreakpointA place where the debugger pauses execution.
- Browser DevToolsThe browser's built-in tools for inspecting DOM, network, console and performance.
- Divide and Conquer DebuggingHalving the search space until the cause is isolated.
- Network TabInspecting every HTTP request a page makes.
- Print DebuggingAdding temporary output to see what code is doing.
- Step Over, Into, OutMoving through code one line or one call at a time.
Mid-level
Own a feature end to end without hand-holding.
Core: start here
- Root Cause AnalysisFinding the underlying reason, not just the symptom.
5 more mid-level concepts
- Conditional BreakpointPausing only when a condition is true.
- Five WhysAsking "why" repeatedly to get from a symptom to its root cause.
- HeisenbugA bug that disappears when you try to observe it.
- ProfilerA tool that measures where time or memory goes.
- Remote DebuggingAttaching a debugger to code running somewhere else.
Senior
Own a system, its failure modes, and its trade-offs.
- Core DumpA snapshot of a crashed process's memory for later analysis.
- Debugging in ProductionFinding issues with logs, traces and metrics when you can't attach a debugger.
- Flame GraphA visualization of where a program spends its time.
Staff
Shape how many teams build, across systems.
Nothing here yet.
Principal
Set technical direction for the organization.
Nothing here yet.
Data Engineer track
Junior
Build and fix pipelines from clear specs; write correct SQL.
Core: start here
- DebuggerA tool to pause code, inspect variables and step through execution.
- DebuggingSystematically finding why code doesn't do what you expect.
- Minimal Reproducible ExampleThe smallest code that still shows the bug.
- Reading Error MessagesActually reading the error: the first and most skipped debugging step.
- Reproducing a BugGetting the bug to happen reliably before trying to fix it.
- Rubber Duck DebuggingExplaining the problem out loud until you spot the bug.
6 more junior concepts
- BreakpointA place where the debugger pauses execution.
- Browser DevToolsThe browser's built-in tools for inspecting DOM, network, console and performance.
- Divide and Conquer DebuggingHalving the search space until the cause is isolated.
- Network TabInspecting every HTTP request a page makes.
- Print DebuggingAdding temporary output to see what code is doing.
- Step Over, Into, OutMoving through code one line or one call at a time.
Mid-level
Own pipelines and models end to end, including their quality.
- Conditional BreakpointPausing only when a condition is true.
- Five WhysAsking "why" repeatedly to get from a symptom to its root cause.
- HeisenbugA bug that disappears when you try to observe it.
- ProfilerA tool that measures where time or memory goes.
- Remote DebuggingAttaching a debugger to code running somewhere else.
- Root Cause AnalysisFinding the underlying reason, not just the symptom.
Senior
Design the platform's storage, processing and modeling choices.
- Core DumpA snapshot of a crashed process's memory for later analysis.
- Debugging in ProductionFinding issues with logs, traces and metrics when you can't attach a debugger.
- Flame GraphA visualization of where a program spends its time.
Staff
Shape how the whole organization produces and uses data.
Nothing here yet.
Principal
Set data strategy and architecture across the company.
Nothing here yet.
Frontend Engineer track
Junior
Build UI that works, ship small changes safely, ask good questions.
Core: start here
- Browser DevToolsThe browser's built-in tools for inspecting DOM, network, console and performance.
- DebuggerA tool to pause code, inspect variables and step through execution.
- DebuggingSystematically finding why code doesn't do what you expect.
- Minimal Reproducible ExampleThe smallest code that still shows the bug.
- Network TabInspecting every HTTP request a page makes.
- Reading Error MessagesActually reading the error: the first and most skipped debugging step.
- Reproducing a BugGetting the bug to happen reliably before trying to fix it.
- Rubber Duck DebuggingExplaining the problem out loud until you spot the bug.
4 more junior concepts
- BreakpointA place where the debugger pauses execution.
- Divide and Conquer DebuggingHalving the search space until the cause is isolated.
- Print DebuggingAdding temporary output to see what code is doing.
- Step Over, Into, OutMoving through code one line or one call at a time.
Mid-level
Own a feature end to end without hand-holding.
Core: start here
- Root Cause AnalysisFinding the underlying reason, not just the symptom.
5 more mid-level concepts
- Conditional BreakpointPausing only when a condition is true.
- Five WhysAsking "why" repeatedly to get from a symptom to its root cause.
- HeisenbugA bug that disappears when you try to observe it.
- ProfilerA tool that measures where time or memory goes.
- Remote DebuggingAttaching a debugger to code running somewhere else.
Senior
Own an app's architecture, performance, and failure modes.
- Debugging in ProductionFinding issues with logs, traces and metrics when you can't attach a debugger.
- Flame GraphA visualization of where a program spends its time.
Staff
Shape how many teams build, across apps.
Nothing here yet.
Principal
Set technical direction for the organization.
Nothing here yet.