How to Configure Your New MacBook — Developer Edition
Latest Updated: May 2024
I just released an interactive course on web application security — check it out on educative.io!
I thought it would be fun to share some steps I follow when I set up a new MacBook for development (when not using Apple’s Migration Assistant).
You will have to install additional dependencies depending on the specific tasks you are trying to tackle and alot of this comes down to personal preference but the following is a great baseline.
I would love to hear about what others do when they get a new machine too. If you create your own config post or know of any similar posts, drop ’em in the comments!
Give Your Computer a Name
- Navigate to System Settings—Sharing and enter a name. Make it yours.
Install the Following Apps
(Custom app configurations are covered — just scroll down!)
Text Editors
Browsers
- Chrome
- Firefox
- Xcode (for iOS Simulator)
- VirtualBox (for Windows stuff)
Communication
Music/Video
Calendar
Notes/ToDo Lists
Dev Tools
- Docker Desktop for Mac
- iTerm
- Github Desktop
- Postman
- Postico (PostgreSQL)
- Sequel Pro (MySQL)
- Image Optim
- GraphQL Playground
Productivity Tools
Turn Off Alerts
- Navigate to System Settings — Notifications
- Turn alerts/sounds off for the following apps:
- Calendar (because Fantastical is used instead)
- Mail (because Spark is used instead)
- Messages (badge icons okay)
- Spark (badge icons okay)
Install the Following CLI Tools
Add Aliases
- Add the following to your ~/.zshrc file:
# Aliasessource $HOME/.aliases
- run:
touch ~/.aliases
- Copy the contents of this file into your ~/.aliases file
Configure Git
- Open up a terminal and run:
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
$ git config --global core.editor 'code -n -w'
Configure VS Code
- Install the code command
- Install the Fira Code font
- Install the following plugins:
- ESLint
- Proto3
- One Dark Pro
- Turbo Console Log
- Material Icon Theme
- Prettier — Code Formatter
- Python
- npm
- Docker
- Vim
- DotENV
- Git Blame
- GraphQL for VSCode
- Sort Lines
- ES6 Code Snippets or ES7 React/Redux/GraphQL/React-Native Snippets
- Navigate to settings and copy this file to your settings.json file
- Navigate to keyboard settings and copy this file to your keybindings.json file
Configure Chrome
- Set Chrome as your default browser
- Install the following extensions:
- Adblock Plus
- JSONView
- LastPass
- HTTP Everywhere
- Momentum
- React Developer Tools
- Redux DevTools
- Save To Pocket
- Vimium
- Window Resizer
- Octotree
- Honey
Configure iTerm
- Import this profile
- Navigate to Settings — Keys — Hotkey
- Create a hotkey (mine is command+i)
Configure Alfred
- Navigate to Alfred Preferences — General
- Set a hotkey that you’ll remember (mine is option+A)
- Navigate to Alfred Preferences — Features
- Click on “Clipboard History” in the left sidebar
- Enable “Keep Plain Text” for 1 Month
- Click on “Snippets” in the left sidebar
- Add any snippets you use frequently
- You can use option+command+C to view clipboard and snippets
- Navigate to Alfred Preferences — Web Bookmarks
- Check “Google Chrome Bookmarks”
- Purchase the powerpack
- Install the following workflows:
- caniuse
- dash
- evernote
Configure Spark
- Navigate to Preferences — Notifications
- Click the Badges tab
- Check “Enable dock icon badge”
- Navigate to Preferences — Shortcuts
- Change the shortcut for “Archive” to be the delete key
- Navigate to Preferences — Signatures
- Setup a signature for each account
- Navigate to Preferences — Templates
- Add any e-mail templates with applicable placeholders
Configure VirtualBox
- Follow these instructions to install IE/Edge
Configure the menu bar / iStat Menus
- Hold down Command
- Click on the following menu bar icons and drag them off the menubar to remove: Siri, Date/Time, Battery, User, Volume
- Open iStat Menus
- Enable Notifications, Weather, CPU & GPU, Memory, Disks, Network, Battery/Power, Time and Combined
- Enable a notification when battery time remaining hits 15 minutes
- Tweak the Time settings to only include the cities you care about
- Hold down Command and click each icon in the menu bar to rearrange them to your liking
Configure the Dock
- Drag the Downloads folder to the left of the trash can so that it persists in the Dock
- Navigate to System Settings — Dock
- Make the size as small as possible
- Ensure magnification is turned off
- Enable “Automatically hide and show the Dock”
- You can use Command+Option+D to toggle the Dock at any time
- Open Xcode
- Navigate to Xcode — Open Developer Tool — Simulator
- Right Click Simulator in the Dock
- Select “Options — Keep in Dock”
- Remove the default dock apps (right-click icon — Options — Check “Remove from Dock”)
- Add your favorite apps (Open app — right-click icon — Options — Check “Keep in Dock”)
Configure Mission Control
- Navigate to System Settings — Mission Control
- Click “Hot Corners”
- Set “Mission Control” to the top left corner
Configure the Trackpad
- Navigate to System Settings —Trackpad — Point & Click
- Enable “Tap to click”
- Set “Tracking speed” to the 5th notch
- Navigate to System Settings — Trackpad — More Gestures
- Enable “Mission Control” (Swipe with three fingers)
Configure the Keyboard
- Navigate to System Settings — Keyboard
- Set “Key Repeat” to the fastest setting
- Set “Delay Until Repeat” to the shortest setting
Configure Night Shift
- Navigate to System Settings — Displays — Night Shift
- Schedule “Night Shift” to turn on automatically from sunset to sunrise at the warmest setting.
Enable Full-Screen Zoom
- Navigate to System Settings — Accessibility — Zoom
- Check “Use keyboard shortcuts to zoom”
- Check “Use scroll gesture with modifier keys to zoom”
Show Hidden Files in Finder
- Open up a finder window and run:
CMD + SHIFT + .
Show the Current Path in the Finder Title Bar
- Open up a terminal window and run:
defaults write com.apple.finder _FXShowPosixPathInTitle -bool true; killall Finder
I hope you found the above settings useful!
P.S. — I also released a course on mastering technical interviews. Check it out!