The nightly job that went from four minutes to six hours
A Python job de-duplicates and enriches event records before loading them into a warehouse. It has run nightly in about four minutes for two years.
Over the past two months the runtime has crept up: 4 minutes, then 11, then 40, then 2 hours, and last night 6 hours. Input volume over the same period went from 90,000 records to 240,000 — under 3× growth.
The instance is not memory-constrained, CPU sits at 100% on one core throughout, and there is no network or database wait in the profile. The code has not been modified in five months.
Input grew under 3× and runtime grew 90×. What does that ratio tell you before you look at any code, and what would you look for once you do?
Choose how you want to be interrogated
The same case under two modes is two different exercises. If you are unsure, RCA drill is the one that trains root-cause analysis most directly.
RCA drill
A symptom, and nothing else. Find the cause and prove it.
Trains: Hypothesis generation, ranking by prior, and naming the test that discriminates.
Red team
You propose. It attacks. It is trying to make you wrong.
Trains: Defending a position under pressure, and noticing when you should concede.
Socratic
Questions only. It will never tell you the answer.
Trains: Deriving from first principles instead of retrieving from memory.
Design review
Present an architecture. Justify every trade-off you made.
Trains: Stating what you optimised and what you gave up, on purpose.
Viva
Rapid escalating questions. Ends in a graded verdict.
Trains: Answering under time pressure without hedging.
Integration
Problems that span several domains at once. The hardest mode.
Trains: Reasoning across boundaries, where the cause is in a different system to the symptom.
Before you start: you begin locked. The Mentor will give you nothing — not a nudge, not a category — until you state a specific position and the mechanism you think produces it. Four genuine attempts unlock the resolution. There is no shortcut.