A brand new Mac — Setup time

Kishan Nirghin
5 min readOct 29, 2020

The 2021 MacBook Setup Guide For Developers

MacBook Pro — Desk Setup

As developers we love getting new machines to go about our business. A fresh working station for a developer is what a huge box of candy would be to a child; It triggers a lot of excitement and enthusiasm. Over the last 12 months I had the privilege to be able to switch laptops 4 times. In this article I’ll explain and elaborate on the things that I do in order to prepare my machine for daily business. With the steps in this guide I’ll be preparing a new machine to become a pleasant, effective, but mostly efficient companion.

Phase 1) Mac configuration

The first steps generally consist of doing setup, changing configurations, and adding core pieces of software.

Setup iCloud — Generally the very first step I take on a new machine is setting up iCloud. Personally I use iCloud to my advantage by syncing my notes, reminders and photos across all my devices.

Setup email accounts —Always good to stay on top of your emails. Personally I have the following mail accounts: private1, private2, work1, freelance1, freelance2, Toptal and iCloud. The default client Mac mail client is decent enough to stick with it.

For the gmail users among us here is a tip I use frequently: gmail by default ignores everything that comes after the ‘+’ and before the ‘@’ sign. This means that the email address: john@gmail.com corresponds with the same mailbox as john+medium@gmail.com. This small trick can be truly convenient when wanting to create multiple accounts with the same mailbox, but can also improve security & privacy since it allows you to use a ‘different’ mail account for every service.

Modify trackpad gestures — I change swiping between pages from 2-finger to 3-finger gestures and I change swiping between full-screen apps from 3-finger to 4-finger gestures¹. Lastly I disable natural scrolling (which is really a preference thing).

Install Magnet — In order to quick and easily rearrange windows to common sizes and positions I use a tool called magnet. With the help of Magnet I can rearrange and resize windows by means of keyboard shortcuts. Personally I use this a lot when working with multiple applications; I’d use the hotkeys to have one application fill the left half of the screen, and have one application fill the right half of the screen.

Optimise dock — The dock takes up quite some room on your screen. In order to optimise this I remove all not-frequently-used items from the dock. Applications can easily be started without the dock with the spotlight search cmd+space therefore there really is no need for the dock taking up so much space on the screen). Also I move the dock to the left (like Ubuntu).

Install and setup Chrome — This would be the browser of my preference. Generally I choose Google Chrome due to its powerful dev tools, and since I also just like the UI and UX much better than safari. A chrome-tool I also fancy is the user profiles. Every chrome profile has its own browsing history, cache, cookies, bookmarks bar, etc. Because of this I create a new chrome profile for every project I work on to have an isolated context.

Install OhMyZsh —A better shell with more options out of the box. The colour scheme alone is usually enough reason for me to go with OhMyZsh.

Install core software — brew, yarn, npm and git since this software is used so frequently, it is good to have them present already.

Phase 2) Get all the software

After the basic setup and configuration of the Mac, I install a bunch of software that has a significant positive impact on me.

What getting all the software looks like

Install Slack — Generally when I get a new laptop it is to replace a previous model. I like to go offline on the other laptop as soon as possible therefore installing slack (my main means of communication with the community) is something I tend to do fairly quick.

Install Todoist — My task manager of choice. I personally find Todoist well organised and easy on the eyes. Also it has decent integrations with Google Assistant. To keep my workflow efficient I generally write down all tasks that come to mind that would require context switching and focus at one thing at the time.

Install Evernote — For making organised notes. I create different books for various purposes and organise my notes per subject (or even sub-subject).

Install BitWarden — My password manager of choice. I can highly recommend BitWarden as it has great device support, is free to use, open-source, can be self hosted, shares your data cross device, and most importantly it seems to be secure.

Install Dropbox — This is the cloud storage provider I adapted. At the time of writing the pricing among dropbox/google drive and iCloud storage were comparable. Cloud storage is much more reliable and a way to always have your documents close to you.

Install Visual Studio Code — Apart from the default installation I do the following enhancements: change the keyboard shortcuts for navigateBack to cmd+[ and navigateForward to cmd+]², add rulers at the 80-char and 100-chars point³

Phase 3) Pre-install software you’re going to need anyway

Certain pieces of software are so common for developers that it would only be a matter of time before you’d need it. Therefore pre-installing this software will safe you some time when you actually need it.

The list of software I usually pre-install is: Docker, Postman, Skype, Zoom, and XCode.

Conclusion

Ultimately there is no such thing as a good or bad working machine. It really is a matter of personal preference. That being said, having a peek in the kitchen of another chef often is a great way to gain inspiration and adapt things that may be beneficial to you. A good rule of thumb is that you should spend 90% of your efforts on the 10% of things that matter the most. If a good setup or tooling can help you achieve this goal it will be worth the investment.

Footnotes

¹ The default trackpad gestures are a bit confusing. 2-finger gestures are used to scroll when applied vertically but used to traverse the history stack when used horizontally. This feels a tad inconsistent to me.

² This is the default behaviour in the Goland editor and much easier to use than the default of VSCode.

³ An old convention has been to not go over the 80 char width when writing code or docs (improves readability and is friendlier towards smaller screens). I tend to use the 100-char width for projects that didn’t opt for a max 80-char width.

--

--