macbook.init(): a dev machine set-up guide

I started a new job, and I am excited. I get a new MacBook delivered and after keeping the delicate wrapping paper intact during the intricate unboxing, it dawns upon me that it is not my MacBook. It is a brand-new system devoid of all the custom tools that make my (work) life easier. On top of it, I do not even remember what those tools were, to begin with. Was it oh-my-zsh, or was I using fish? What did I do last time to get the top bar show Bluetooth? I end up setting small things like these, slowly every day, until it becomes all familiar, and I forget about them.

Not this time, I said to myself. As I start working at Okta, I decided to log the steps to set up my system, mostly for future me, but also for anyone else stumbling on the same StackOverflow articles over and over again.

Update OS

Yeah, just update the OS now that you have patience. It is probably outdated and the next step may require it.

Install Xcode

Do not wait on some CLI tool to fail on you later and install Xcode now. Might get lucky running xcode-select --install.

Install Firefox/Brave

Use Safari to install Firefox and Brave and log into them. Also set up extensions like -

  • Password managers
  • Ad blockers
  • Web3 wallets

Set up terminal environment

Install iTerm2

Download the latest build here

Install homebrew

Refer, or

/bin/bash -c "$(curl -fsSL"

Install oh my zsh

Refer, or

sh -c "$(curl -fsSL"

Disable history sharing across zsh sessions

echo โ€œunsetopt share_history\nsetopt no_share_historyโ€ >> ~/.zshrc

Setup keys ๐Ÿ”‘

SSH and GPG keys need to be generated/imported and updated everywhere, especially GitHub.


ssh-keygen -t ecdsa -b 521


gpg --import <private-key-file>

Install nvm


curl -o- | bash

Install tmuxinator

brew insatll tmuxinator

Customize vim

Restore dotfiles and customize vim and other things.

Next steps

At some point, I should figure out that something is wrong with the trackpad and check that box that says Tap to click in settings. This is a living document and I will keep adding things to it, as I find. Now I should get back to that new system I just configured and get some work done!