Article Image
Article Image

In this post, I’ll share the key tools and configurations I use when setting up a new macOS environment for software engineering.


I’m a fan of Firefox and a bunch of other tools, but I’ll keep this to developer-related tools.


I believe it is better than the built-in Terminal. Probably.

Configure the following shortcuts from this tutorial.

  • ⌥ ⌫ for deleting a word
  • ⌥ ← for going back a word
  • ⌥ → for going forward a word

Set the Login command in profile to open tmux or reuse an existing session. When I accidentally close the window, this keeps me from terminating a long-running program.

tmux attach -t base || tmux new -s base


Managing passwords and keys is 100x easier with 1Password and they’re more secure than a lot of the other options out there. Their SSH key management and git signing support is a must-use.



I used to call the folder ~/dev or ~/Development, but if you call it “Developer”, then Apple will reward you with a special folder icon.

Pretty cute Developer folder


If you also take a lot of screenshots, you’ll want to see this post about setting up a screenshot folder.

Developer Tools

macOS changed the default from bash to zsh in 2019 so if your previous computer was an Intel-based MacBook you’re in for a very-similar experience.

Oh My Zsh

It is a framework for managing shell plugins.

# .zshrc, line ~73


The one-stop-shop for managing Java/Python/Ruby/whatever versions. If you use Ruby, I recommend enabling the legacy versions so you can use the other version manager .ruby-version files.

# $HOME/.asdfrc
legacy_version_file = yes


It is the most popular way to install command line tools.


It makes my command prompt look nice. on  main [!?] via 💎 v2.7.8


Command line tool for jumping back in to a project you were working on. For example, if I type z ad, it drops me back into the Advent of Coding project.

❯ z ad



I also like to keep this command handy for clearing out git branches that have been merged to main.

git branch --merged main | grep -v "\* main" | xargs -n 1 git branch -d


This post was more for me to remember what I use than for others, but I hope some folks found it useful anyway!

Blog Logo

Salvatore Testa



Salvatore's Blog

It works on my computer.

Back to Overview