Debug out loud without guessing wildly

MOG teamTechnical interviews

A debugging interview is an opportunity to show how you reduce uncertainty. The strongest next step is often a precise check rather than an immediate fix.

Programming code displayed on a computer screen

State what you actually know

Start with the observed behavior and the expected behavior. A request timing out is an observation; a database problem is a hypothesis. Keeping those separate prevents your first guess from controlling the investigation.

Ask about the scope: every request or a subset, one region or all regions, a recent release or a longer-running issue. Each answer narrows the search.

Amina
Jordan
Priya
MOG caught the questionHow would you test this before deployment?

Start with the highest-risk path, add integration coverage, then release behind a flag.

Amina is asking

Choose a check that distinguishes causes

If both an upstream timeout and a slow query could explain the failure, inspect timing at the boundary between them. Explain what each possible result would mean before proposing the next action.

In a coding exercise, create the smallest input that reproduces the bug. Walk through the relevant state change and test your proposed correction against that input.

Observation, hypothesis, experiment, result. Keep each step visible.

Verify the fix and its neighbors

A passing example is the beginning of verification. Check an empty input, a boundary value, or a repeated request where those cases matter to the bug.

MOG may offer a useful hypothesis during the discussion. Treat it as something to test. Explain the evidence that supports your final answer and the uncertainty that remains.

Continue reading

More from the MOG journal