How I setup my Macbook for development

Ever since I began learning software development, I’ve been on the quest for the ultimate workstation setup that would maximize my productivity and enable me to enjoy crafting software. I’ve experimented with various configurations, software, and workflows, but I never quite found the perfect fit. However, I’m excited to share that I’ve finally discovered my dream setup and workflow that allows me to be both productive and happy when programming. In this article, I’ll explain how and why I configured my work environment in the way that I did.

I’m not here to convince you that my way of working is the best. I truly believe that everyone has their own preferred way of working and that it’s important to spend some time exploring different options to find what suits you best. While you may or may not find inspiration in my article, my hope is that it will at least inspire you to explore the multitude of possibilities available to us in 2023 for setting up our workstations in a way that we truly love.

Hardware

Computer

I began my development journey 10 years ago with a Hewlett Packard (HP) laptop, but after three years, I made the switch to the Apple ecosystem, starting with an iPhone, an Apple Watch, and eventually a MacBook. Since then, I’ve never looked back. The UNIX-based operating system (Mac OS) has everything I need to be productive, as well as a UX/UI that I enjoy. These days, I primarily work with a Mac Mini M1 since I’m mostly working from home, but I also have a MacBook Air M1 that I use when I need to work from a public coffee shop with a friend or meet with a client.

Link to Mac Mini M1.
Link to Macbook Air M1.

Keyboard

My keyboard of choice is the Keychron K2, a mechanical keyboard with red switches. I prefer the linear feeling of these switches as they feel smoother to type on, which helps reduce the strain on my hands. While I used to be content with the Apple keyboard due to familiarity, I quickly realized the benefits of using a mechanical keyboard after just a few weeks of intensive use. Since I rely heavily on my keyboard in my workflow, especially since my text editor is terminal-based, I find that the Keychron K2 significantly improves my typing experience. Additionally, I use the Safari extension Vimari for keyboard-driven internet navigation.

Link to Keycheron K2

Monitors

I use two Samsung WQHD 144Hz 27” monitors in my workstation setup. I prefer having ample screen space to display all the windows and applications that I need at once, which helps minimize the need for excessive window switching and thus reduces the amount of time I need to spend switching between my keyboard and my mouse. I use the monitors in landscape mode, as I find portrait mode to be uncomfortable and didn’t see any significant benefits to using it for programming.

Link to Samsung WQHD 144hz 27”

Audio

Music plays an important role in my day-to-day routine, so a few years ago, I invested in the Sony XM4 headphones. I’m still quite pleased with them, as they provide excellent sound quality and comfort. When I need more mobility, I switch to my AirPods Pro, but I always prefer to use my Sony headphones when I’m looking for the best audio experience.

Link to Sony XM4

Software

Text Editor

As a developer, I’ve tried my fair share of text editors over the years, experimenting with everything from EMACS to Sublime Text, Visual Studio Code, IntelliJ, Atom, and others. However, in each one, I found something that didn’t quite meet my needs, whether it was a lack of customization options or excessive resource consumption. Eventually, I returned to basics and tried a terminal-based text editor: VIM. While it takes time to adjust to its keyboard-only editing style, VIM can be incredibly powerful and customizable. To help with customization, I use LUNAR VIM, which is a pre-configured version of VIM. For the past two years, I’ve used VIM exclusively to write code, including this very blog post. I’m quite satisfied with my current workflow and have no desire to switch to another text editor.

Link to Lunar VIM

Utilities

I don’t use a lot of different software in my daily routine, as I prefer a minimalist approach to maximize efficiency. That being said, I always have Apple Music open to provide ambient sound, whether it’s music or a podcast. Additionally, I use TickTick for weekly planning and task management, and Slack for seamless communication with my colleagues.

Conclusion

In conclusion, I am a firm believer in minimalism and strive to maintain a streamlined setup to maximize productivity and minimize distractions. My tools and equipment are carefully selected to cater to my specific needs, and I am always on the lookout for ways to improve my workflow. By keeping my setup lean and efficient, I am able to focus my attention on what truly matters: crafting excellent software and enjoying the process. Whether you are a software developer or someone who simply wants to optimize their work environment, I encourage you to explore the possibilities and find what works best for you.

© 2023 Damien Dumontet. All rights reserved.