So I've embraced overlapping windows. I strategically place them so that the import parts are visible. For example, my IDE is full screen, but the browser is only 70% with and height or so (so that the left 30% and the bottom 30% of the IDE are visible, which conveniently lets me peek into the log of the currently running program.
I have a Hammerspoon configuration that conjures up a modal window on a keypress, and then additional keypresses move the current window to a predefined position and size, e.g. m to maximize and p for the top right corner (70% width and 70% height).
I also have some keybindings in that modal window to jump to an app, e.g. w for the browser, i for the IDE, t for the email client, space for the terminal.
I very very rarely manually move a window around, one of the preset positions/sizes usually works for me.