Skip to content

macOS Setup

Setting up a new Mac for tech work involves a series of steps to ensure that your system is secure, efficient, and equipped with the necessary tools for your development needs. This guide will walk you through essential system changes, hardening your Mac for security and privacy, and suggest applications for general tech work, Python, Ruby on Rails, and Go development. Additionally, we'll recommend some utilities that are highly beneficial for tech professionals.

System Changes

Ensure your macOS is up-to-date to benefit from the latest features and security patches. Go to System Preferences > Software Update, and install any available updates.

Customize your system settings to improve efficiency: - Dock: Reduce the size, enable auto-hide, and remove unnecessary apps. - Trackpad: Enable tap to click and configure gestures for better productivity. - Keyboard: Increase key repeat rate and reduce delay until repeat. - Hot Corners: Set up hot corners to access Mission Control, Desktop, or other frequently used features quickly.

Enable FileVault to encrypt your disk and protect your data. Go to System Preferences > Security & Privacy > FileVault, and turn it on.

Turn on the firewall to protect your Mac from unauthorized access. Go to System Preferences > Security & Privacy > Firewall, and enable it.

  • Adjust size and Position as you find convenient. I make mine smaller and leave it at the bottom.
  • check Minimize windows into application icon
  • Click the Point & click tab.
  • Change Secondary click to Right corner
  • Enable Tap to click with one finger
  • Adjust Tracking speed as needed
  • Finder → Preferences
    • Change New finder window show to open in your Home Directory
    • Sidebar:
      • Check Home
      • Uncheck Recent Tags
  • View:
    • Click Show Path Bar
      • Click Show Status Bar
      • Click Show View Options:
        • Set Always open in column view
        • Set Browse in column view
          • Set Group by to Kind
          • Set Sort by to Name

Hardening for Security and Privacy

Review and configure privacy settings to control app permissions. Go to System Preferences > Security & Privacy > Privacy.

Use a password manager like 1Password or Bitwarden to store and manage your passwords securely.

Install a reputable VPN service like NordVPN or ExpressVPN to encrypt your internet traffic and protect your privacy.

Suggested Applications for General Tech Work

Install Homebrew, the macOS package manager, to simplify the installation of software:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

iTerm2 is a powerful terminal emulator that offers features like split panes, hotkeys, and extensive customization.

brew install iterm2

Visual Studio Code is a versatile and powerful code editor with a vast library of extensions for various programming languages.

brew install visual-studio-code

Pick one of the following fonts to use, these include ligatures for powerlevel10k. I use Hack.

brew install font-fira-code-nerd-font
brew install font-fira-mono-nerd-font
brew install font-hack-nerd-font
brew install font-roboto-mono-nerd-font
brew install font-ubuntu-mono-nerd-font

Rectangle is a window management tool that allows you to organize your windows using keyboard shortcuts.

brew install rectangle

AppCleaner - uninstall unwanted apps

Slack is a collaboration tool that helps you communicate with your team, share files, and integrate with various services.

brew install slack

Little Snitch is a network monitor that helps you control and monitor your network traffic.

Angry IP Scanner - Open-source, cross-platform network scanner

Bartender allows you to organize your menu bar icons, hiding those you don’t need and keeping your menu bar tidy.

Your shell

Oh My Zsh is an open source, community-driven framework for managing your zsh configuration.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
- Change your shell, the zsh install should ask you to and take care of this, but just in case:
chsh -s $(which zsh)
- Start a new shell instance"
source ~/.zshrc

I use this utility to add extra features to my shell, see here for instructions.

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
  • Set ZSH_THEME="powerlevel10k/powerlevel10k" in ~/.zshrc

Additional plugins can be found at zsh-users and Oh My Zsh

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:=~/.oh-my-zsh/custom}/plugins/zsh-completions

Add the plugins to your .zshrc file like so:

# zsh Plugins
plugins=(
  [...]
  zsh-autosuggestions
  zsh-completions
  zsh-syntax-highlighting
)
brew install tree
brew install vim
brew install htop

Development Environment Setup

See our other blog posts on setting up the Python, Ruby/Rails and Go.