Setting up a brand new MacBook for development

Bharat Kalluri / 2020-04-18

This article also evolves as my job evolves. Currently I do mostly Python and Typescript, So all the tooling will be focused on those languages.

Getting started

  • Go through all the steps of Mac setup like setting up time zone etc..
  • Update your system so that you have all the security updates and patches

Homebrew

Homebrew is a package manager for Mac OS. If you are familiar with apt on ubuntu or dnf on fedora, you will feel right at home. Install homebrew from command line

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Install Apps

Brew broadly has two types of apps, normal open source applications like git etc.. and binary applications like firefox as casks. So brew install git installs git and brew cask install firefox installs firefox since firefox is a binary.

brew install \
  git \
  gpg \
  gawk \
  fzf \
  stow \
  exa \
  git-delta \
  make

Now let us install casks

brew install --cask \
  alfred \
  telegram \
  visual-studio-code \
  firefox \
  rectangle \
  iterm2 \
  docker \
  iina \
  spotify \
  postman \
  jetbrains-toolbox \
  zoom \
  slack \
  bitwarden \
  whatsapp

Shell

MacOS already comes with zsh as the default shell, install oh-my-zsh which comes with a range of plugins and themes.

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

SSH

Generate ssh keys and add them to github/gitlab

ssh-keygen -t ed25519 -C "<email>"

Safari extensions

Safari is a good browser and a sane default, but it requires some extensions for it to be ready for day to day use.

Safari extensions to install

  • Enable Bitwarden on safari
  • Adguard

Changes in MacOS settings and tweaks in other applications

  • Enable tap on click on touch pad at Track pad > Tap to click
  • Change caps lock to escape key : Keyboard > modifier keys > Caps lock - escape
  • Set dark mode
  • Dock preferences > Automatically hide and show dock
  • Turn on firewall
  • Change to natural preset for keyboard in iterm
  • Change iterm theme to smooth and appearance to minimal
Hand crafted by Bharat Kalluri