stordahl.dev

Limiting Cognitive Overload

Published May 30, 2022

Transitioning from agency to startup work life has been a non-stop learning experience since I joined Stylitics four months ago. I've had the opportunity to see how other engineers at the company have their workflows setup which has encouraged me to experiment with my own workflow. My current goal in this experiment is to limit cognitive overhead while working, which has included adoption of aggressive time block planning for work days and utilizing the pomodoro technique during work blocks. Accounting for all of my daily tasks ahead of time has been incredibly helpful with managing my ADHD, including getting exercise & enough to eat in a day.

In tandem with the scheduling changes, I've also been trying to think critically about the software I utilize to complete my work, and try to limit it to only things that enable precision & effortless navigation. The largest change in this regard, is ditching the number of electron apps I would normally use on my MacBook, namely Slack, Notion, & Clickup, and instead use the browser versions. My browser of choice is Microsoft Edge for two specific reasons: it is Chromium based, but isn't a Google product, and it has fantastic built in tab groups which keeps my browser chaos to a minimum. I'm constantly pulling up Github repos, docs, and articles while working on features, so having a tab group that shares the same name as the feature keeps the clutter down a ton, again lightening that cognitive overload.

As I mentioned above, I use the pomodoro time keeping technique during my work blocks to maximize productivity and I achieve this by using a wonderful application called Session. The free version of Session is wonderful, but if you are a professional, I highly recommend paying for the Pro version. I struggle a lot with getting distracted by social media, so I make use of Session's Web page blocker to block Twitter, Youtube & LinkedIn when I'm in a focus block. You can also parse through data regarding your work habits which can be very insightful when trying to refine a process like this.

Outside of the browser and Session, the only other application I try to have running is my terminal. Currently I'm using Warp which is a Rust based terminal and is the new hotness on the block. I've been happy with Warp over the past two months of using it, but can't really recommend it over another macOS terminal option like Kitty or iTerm2. My shell is zsh (specifically oh-my-zsh), where I employ neovim to navigate code bases and edit files. I've recently made the switch from VSCode to vim and removing that layer of constant context switching has been a real game changer for my productivity. A few other CLI tool honorable mentions are Httpie as a command line replacement for Postman, and Nushell for granular data aggregation/manipulation.

The last layer of this workflow is all of the small utilities that I use in macOS to heighten the experience a bit. I use Raycast as a Spotlight/Alfred replacement and it has really leveled up what I can do without leaving the keyboard including application launching, long lived clipboard history, snippets, and even installing things via homebrew. Another utility worth highlighting is Amethyst: a linux-like, macOS tiling window manager. Using Amethyst, I never have to manage windows with my mouse ever again.

All-in-all, this iteration of my workflow has be feeling the most productive I've ever felt. It really shows me that embracing and working with my deficiencies is far more helpful then using guilt or shame to try and force myself to work the same way others do. As for next steps I'm looking at setting up tmux and Harpoon for neovim to improve navigation even more - I'll be writing an update once I've gotten the hang of these tools.