Delegating work to AI means I get to push more projects forward simultaneously. The way I use AI in the cloud infrastructure space (right now) is I have AI cite sources & verify things independently. If a solution involves an AWS service I’ve never used, I dig in until I understand every component of the architecture.
For each project, I wind up with tabs and windows strewn about my 3 displays, resulting in a problem I call “the ocean of context”: switching between projects becomes expensive because I have to piece the context together from tabs & windows that feel all over the place. When everything else is moving so fast, the time cost of this context switching really stands out like a sore thumb.
I utilized SpaceJump, Hammerspoon, and standard macos settings to solve this problem, and I’m still using this setup a month later, and I’m not looking back, so I thought I’d share:
- SpaceJump lets you name your macOS desktops and gives you a clean interface for jumping between them. I created one desktop per project, plus a “Home” desktop for short-lived context shifts — a quick huddle, ad-hoc debugging, etc.
- In macOS settings, all displays share a desktop. Switching desktops switches all three of my monitors at once.
- I used Safari to add Google Calendar and Gmail to the Dock so macOS treats them as regular apps. Then I assigned them — along with Slack — to all desktops. Answering a quick message never requires leaving the project I’m in.
- Hammerspoon runs a Lua init script that defines advanced keyboard shortcuts. Mine moves specific app windows to specific displays, so IDEs and browser windows land on the same monitors no matter which desktop I’m on. This is especially important because macos seems to like to move things around randomly if the screen is locked, or you disconnect/reconnect monitors, etc.
This took maybe 2 hours to set up, and I’m not tweaking it endlessly – it’s been mostly set-and-forget. This makes things very predictable and clean, and using desktops to isolate context for specific projects slashes context switching time to a fraction of what it was, which is important when you’re switching between more projects in a given day.