In this post, I’ll share the key tools and configurations I use when setting up a new macOS environment for software engineering.
Applications
I’m a fan of Firefox and a bunch of other tools, but I’ll keep this to developer-related tools.
iTerm2
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.
1Password
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.
Folders
~/Developer
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.
~/Screenshots
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.
asdf
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.
Homebrew
It is the most popular way to install command line tools.
Starship
It makes my command prompt look nice.
z
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.
Other
I also like to keep this command handy for clearing out git
branches that have been merged to main
.
Addendum
This post was more for me to remember what I use than for others, but I hope some folks found it useful anyway!