Embedded software developer here.
Oh damn, I thought I was going to be the only one here!
I don’t know how you get by with only one. Between source code, simulators/emulators, datasheets, requirement specs, log files, e-mails from senior devs with tribal knowledge not written down anywhere else, and a bunch of other bullshit, I sometimes find 3 24" monitors to be lacking.
Distractions aren’t a problem because I can easily use up all that screen real estate for a single task.
I sometimes name booleans after the action that will be taken rather than the condition they represent For example, I might have booleans called “doQuickInit” or “invertResult”. I find this very useful when the value of a boolean is determined by a complex series of conditions that are not actually true or false.