July 24, 2021 by Faisal Alghurayri
“Give me six hours to chop down a tree, and I will spend the first four sharpening the ax.” - Abraham Lincoln.
I daily use the following tools for web and mobile development.
After ~ 7 years into my tech career, I decided to take a sabbatical from my full-time job. At the same time, my wife received a scholarship to pursue her P.hD. at Charlotte, NC, USA. So we decided to move from our home Riyadh, Saudi Arabia.
The relocation allowed me to start from scratch in building my home office. Instead of opting to get the latest and greatest stuff, I went with more pragmatic budget-conscious options. I only kept my headphones and machine. I got everything else after relocating from Amazon.
I used to have a sweet 2016 14” 16GB Macbook Pro that worked until I started developing full-stack apps using Docker, Node JS, and React Native. Then, I needed to upgrade the RAM to run the whole stack with iOS and Android simulators.
So, in 2018, I pulled the trigger on a refurbished 2018 Macbook Pro with 32GB. I still use it till today, but it started showing its age with the battery swelling and the sticky keyboard. So, I am eyeing a 16” M2 Macbook Pro next year.
In the past, I have used many monitor sizes/configurations.
|3||2 (24”)||1 (14”)||2||1||6/10|
|2||1 (34” curved)||1 (16”)||2||0||6/10|
|1||1 (34” curved)||0||1||0||7/10|
Reflecting on my above experience, I found that the sweet spot for me is not using my laptop monitor but use two full external monitors on VESA spring-loaded arm mount to customize the rotation. So I researched the best monitor size, and I found the LG 24UD58-B 24-Inch 4K IPS to be the finest option from dimensions and resolution perspective.
I pulled the trigger after watching this developer-focused review on it, especially after his comments on PPI and scaling for text-based workflows. I can confidently say that it is the best configuration I have ever had.
I am not proud about the frequency of changing my keyboards - On average, I get a new keyboard every year. I have tried almost every brand, including the obscure Kinesis Advantage2. My short fingers couldn’t get comfortable with any offering other than Apple’s keyboard and the DAS mechanical keyboard with the blue switches.
Currently, I use the Apple keyboard when my wife is in the same room or the Keychron K1 with the blue switches when I’m working alone. I picture the ideal keyboard as silent and compact as the Apple keyboard and as fun and tactile as the blue mechanical switches.
The easiest one. I am a loyal customer of Logitech’s mice. I have been using the MX Master lineup since it launched. Now I have the MX Master 3.
The second easiest. I still use my Bose QC30 since I bought it five years ago. As for the mic, I have tried a couple of USB ones, but I found them to pick up noise pretty aggressively. I researched what non-hardcore gamers/streamers use, and I found the Antlion ModMic Wireless to be the best option in terms of portability and performance. I often receive compliments on how crisp and clear my voice is.
Standing desks are better than conventional desks because it is easier to maintain a better posture while standing. However, standing all the time (or not moving for a long time) is not healthy. When I explored the treadmill desks area, most of the offerings were pretty bulky and expensive. So I went with an adjustable L-shaped standing desk with a compact foldable under-desk treadmill.
I think all desk-based jobs should offer a similar setup. It forces you to always keeping moving, even at low speeds. Constant moving is much healthier due to increased blood flow. It also forces you to take more frequent breaks.
My VS Code Setup
I find the light Serendipity theme to be the most calming option. I used to have the Fira Code font with ligatures enabled. However, nowadays, I use the PT Mono font with no ligatures. I enjoy using Vim keybindings to improve my text editing experience too.
My Firefox Browser Setup
Firefox Developer Edition is my go-to browser for the development environment and general browsing activities. I merged two features to have unmatched DX and UX.
The first feature is running separate containers in the same window, where each container has its sandbox environment. For example, I have four different containers: personal, work, school, and others. Each container has a signed-in Google account, a unique icon and color indicator, and a cluster of the same-context open tabs.
The second feature is the vertical tabs with the Sidebery extension. I am very liberated about the count of long-lived open tabs, so vertical tabs suites me well. I rarely have the sidebar opened, though, as I usually navigate between tabs the same way I use VS Code -
cmd + p in VS Code and
shift + t in Firefox to search-open files/tabs.
By combining these two features, along with the seamless integration of Vimium to enable Vim keybindings and 1Password to manage my password, I don’t see myself changing my browser anytime soon.
My Terminal and Productivity Setup
I have been a long-time user of iTerm2. Once I noticed how little I use the external terminal outside VS Code, I decided to roll back to the minimal Mac OSX terminal. I still got to enjoy the ZSH shell with the powerlevel10k theme there. In addition, I have been using Alfred for a long time as my productivity/apps launcher. I decided to give Raycast a try, and so far, it matches all stuff offered by Alfred with a more elegant UI.
Take it easy,