I read more code than I write. Most of it was written by people who have moved on, under pressures I cannot see. These are the notes I keep for the first two hours.

Start with the seams

I look for the places where the system touches the outside world: the HTTP handlers, the queue consumers, the cron entry points, the database migrations. Everything else hangs from those. Reading the seams first gives me a map before I have any territory.

Then the tests, for what they avoid

Tests tell me what the previous authors were afraid of. A module with a hundred tests around one function and none around its neighbour says something about which one hurt them.

I write down three questions I cannot yet answer, and I stop reading when I can answer them. Two hours is usually enough for three questions. It is rarely enough for four.