In March of 2020, when my job moved into my home, my concept of work-life balance was drastically changed. Since then much has been written about maintaining a sustainable pace and work-life balance. Jeff’s post provides Atomic Object’s perspective on the topic.
Over the past 18 months, I feel like I’ve gotten pretty comfortable balancing my work and personal time. However, lately, I’ve been thinking about the balance between work and personal life from a technical perspective.
I use the same MacBook Pro personally and professionally. The Apple-preferred approach for separating these concerns is to use multiple user accounts. When I first got my laptop, I tried this method and immediately disliked it because I could never have personal and professional work side-by-side.
I want to share how I maintain a technical balance between work and life in my most important tools that I find to overlap frequently. The most obvious candidate is the browser — critical tooling for any developer and responsible for 99% of my personal time-wasting. The other place that I often find overlap in my tooling is in the terminal. I don’t do a lot of personal projects, but when I do, I find that my terminal preferences are different from when I’m developing professionally.
There are many reasons to want to separate your work browser from your home browser. I use plenty of sites both at home and at work like Gmail, AWS, and GitHub. I like to easily stay logged in to both profiles at the same time. It is also convenient to have separate home screens without revealing my social media bookmarks to everybody at work. Some people might like to avoid embarrassing search auto-completion popping up in front of co-workers or during a demo.
Google Chrome is my browser of choice for most purposes. As far back as I can remember it has allowed you to log in to multiple Google accounts. I’ve always had some issues with this feature, though. For example, when I am logged in to my work account at the browser level and then I log into my personal account in an application like Google Docs, weird things sometimes happen when navigating between Google applications.
I recently discovered the more streamlined “Profiles: feature. On Chrome for the Mac, “Profiles” is a menu bar option. Selecting “Add Profile…” displays a wizard for configuring a new profile that can be synced with all of your Google settings and preferences. Selecting your new profile from either the menu bar or the bottom of the account selector pops open a new window logged into the appropriate Google account. Now I simply keep one Google account signed in to each profile, and I even have a spare “guest” profile not associated with any Google account. That keeps my browsing history, settings, and plugins separate between work and home.
Firefox offers a feature that’s very similar to Chrome, but it’s a little less user-friendly. By entering “about:profiles” in Firefox’s address bar, you can configure new profiles. This will allow you to separate settings, bookmarks, and history between use cases. I don’t like needing to navigate to this “about” page to launch my new profile, but it gets the job done when I find myself needing to use Firefox.
I have not found a good way to handle multiple profiles on Safari. From what I have read, the “multiple user accounts” solution is the best that they offer. I did not like this approach, so I consolidated my accounts into one and mostly abandoned Safari.
I use iTerm2 with ZSH and ohmyzsh as my day-to-day terminal. I’ve spent more time than I care to admit customizing and perfecting my ZSH configuration. The iTerm2 settings provide a simple interface for creating new profiles. These profiles allow for applying different settings, themes, shortcuts, and more. I use the iTerm2 profiles feature mostly to have different themes and default directories for quick access. I like that iTerm2 allows for selecting which profile to open a new window with directly from the dock.
Recently when working on a personal project I wanted to configure an environment variable, but had a name collision with something from a loaded project environment. I discovered a solution by following this blog post, which sets up separate ZSH profiles based on your iTerm2 profile. The outcome is to be able to branch variables, plugins, or aliases that would typically be set in `~/.zshrc` based on the profile. I highly recommend trying this out for ZSH and ohmyzsh users.
Separating Work and Home Tools for Work-Life Balance
Separating work and home in some of my most common tools has helped me to develop a better work-life balance recently. I hope some of these tips can help you keep an organized and balanced desktop. Balancing your favorite tools can be just as beneficial as managing your time.