If you want instant 10x engineer aura, then you need to have your local development setup fully automated1.
In this post, I’ll provide a comprehensive walk-through of how I automated my MacBook setup and my general philosophy around developer productivity.
I have three repositories that facilitate my local development setup / productivity:
- nickolashkraus/dotfiles: My personal dotfiles
- nickolashkraus/bash-scripts: A collection of helpful Bash scripts
- nickolashkraus/nhk-mac: A CLI for quickly setting up a new macOS workstation
nhk-mac is the core application2, which utilizes bash-scripts and dotfiles for configuration.
To setup a new macOS workstation, all I have to do is:
Open Terminal.
Download the zip file.
curl -L https://github.com/nickolashkraus/nhk-mac/archive/master.zip -o nhk-mac.zip
unzip -q nhk-mac.zip
mv nhk-mac-master nhk-mac
rm nhk-mac.zip
cd nhk-mac
- Run
nhk-mac
.
./nhk-mac
This application does the following:
- Checks System Integrity Protection (SIP) status (yabai requires SIP to be disabled)
- Sets hostname
- Configures keyboard
- Configures Dock
- Configures System Settings
- Installs Xcode
- Installs Homebrew
- Installs Homebrew packages
- Installs Oh My Zsh
- Installs vim-plug
- Installs Powerline Fonts
- Generates SSH keys
- Sets up workspace
- Installs Java
- Installs Python
- Sets up virtualenv
- Installs nickolashkraus/bash-scripts
- Installs nickolashkraus/dotfiles
- Installs Vim plugins
- Installs fzf
- Installs yabai
- Installs skhd
- Configures GUI applications
In a few weeks, I am starting a new job, so I can’t wait to use this on a new machine and to start being productive from day one.