It was 2 AM on a Tuesday, and I was staring at a function I had never seen before.

The codebase had 47,000 files across six microservices, written by people who had left the company years ago. I needed to understand how authentication flowed from the mobile app to the backend, through three different services, and back. I had grep open in one tab, the codebase in another, and ChatGPT in a third — copying and pasting files one at a time.

This isn't a workflow. It's a coping mechanism.

Every developer I know does some version of this. We read five files to understand one function. We trace imports manually. We build mental models that evaporate the moment Slack pings. We accept that understanding a new codebase takes weeks — sometimes months — as if that's just how software is made.

I don't think it has to be this way.