Fixing issues in Scala 3 compiler codebase is hard. One part of it is, given an issue, to understand why it is happening, what in the codebase causes it. And this task is complicated because the compiler is big and complex. The challenge here is navigation and awareness of what's going on in the code.
To my experience, having the right setup makes a huge difference when doing pretty much any task. Abraham Lincoln is quoted with the following: "If I only had an hour to chop down a tree, I would spend the first 45 minutes sharpening my axe."
Over the last years, I spent some time thinking and playing with different setups to allow getting yourself to a root cause of an issue fast through the codebase. In this talk, I'd like to present what techniques reduce overhead when reproducing the issues and navigating the compiler codebase to trace them.