Post
A debugging playbook for new grads
2026-01-011 min read
Debugging is an engineering skill, not a personality trait. The fastest debuggers do three things well:
- Reduce the problem space
- Increase signal
- Verify assumptions
Reduce scope first
If you can’t reproduce it reliably, you can’t fix it reliably. Shrink the surface area until you can answer:
- What changed?
- What input triggers it?
- What’s the expected output?
Increase signal
Prefer deterministic signals over guesses:
- Add structured logs with correlation IDs.
- Capture timings and error rates.
- Write a minimal test that fails.
Here’s a tiny example of making logs actually useful:
export function withRequestId(requestId: string) {
return {
info(message: string, meta: Record<string, unknown> = {}) {
console.log(JSON.stringify({ level: "info", requestId, message, ...meta }));
},
error(message: string, meta: Record<string, unknown> = {}) {
console.error(JSON.stringify({ level: "error", requestId, message, ...meta }));
},
};
}Verify assumptions
Most bugs are “I thought X was true” moments. Write down your assumptions and validate them with evidence.
Recap
- Make it reproducible
- Add the right signals
- Prove or disprove assumptions quickly