New MacBook Pro Dev Setup

thecodepixi profile image Emily A. Pixi Updated on ・2 min read

A quick run down of everything I did to get my dev environment up and running on my new 2020 MacBook Pro...

First Things First...

Before I did anything with my new laptop, I first made sure to backup anything I wanted to save from my old laptop (a late 2014 MacBook Air). This included making a copy of the settings.json in VSCode, checking for and special settings in the .bashrc and .zshrc files, and backing up all of my documents.

Next Things Next...

The first thing I do with any new computer is go through the setup process and then check for software updates. Then I download any software that I know I'll need.

For this setup this included:

  • VSCode
  • Firefox
  • Chrome
  • Affinity Designer
  • Postgres
  • Discord
  • Slack
  • Zoom
  • Streamlabs OBS
  • Spotify
  • iTerm2 (with OhMyZsh)

Then I went into iTerm2 and setup a new custom profile, as well as making customizations to my OhMyZsh settings.

After I had my terminal setup, I went into VSCode and replaced the contents of the settings.json with the saved copy from my old laptop.

Last Things Last.

The last thing I do to make sure I have everything I need is to go through and make sure I install all of the CLI programs I'll need for my development process. With this computer that meant updating XCode, updating Node and Ruby, and then installing Homebrew, NPM, React, Gatsby, and Rails.

I also made sure that when I was backing up my previous laptop, I made a list of all of the extensions I had in my previous install of VSCode. Re-installing those on my new machine is the last step of the process.

My Favorite VSCode Extensions:

  • Dracula Official (theme)
  • Panda (theme)
  • Prettier
  • ESLint
  • Bracket Pair Colorizer
  • Code Spell Checker
  • Live Server
  • JS JSX Snippets
  • Material Icon Theme
  • Ruby / VSCode Ruby
  • WakaTime

Let me know how similar or different this is from your process of setting up a new machine! This is the basic "must have" list and doesn't include the fun stuff like choosing a new wallpaper or making sure I have my favorite screensaver installed.

xx Pixi / Emily

Posted on by:

thecodepixi profile

Emily A. Pixi


Founder and Organizer of Code Cafe Online. Flatiron School Software Engineering grad. Learner Advocate and Production Engineer with egghead.io


Editor guide

Apart from the language choices, it's fairly similar to my setup.
The only things you mention that are specific to Macs are homebrew, iterm and xcode, and none are specific to a particular model (Macbook Pro). I use various machines that generally don't run MacOS so I don't have to go through those steps and I get a lot of that stuff out the box.

I have a couple of scripts to install things I commonly use and my own little wrapper around stow for my dotfiles, which gets me 90% of the way there.

I dump everything in a single directory or duplicate /home if I'm migrating to a new machine, and then
I spend about 10 minutes every other day for the next week thinking, "damn, forgot about that".


You install Postgres?

I used to install the DB, then I learned that Docker can free me of this. Each project has its dependencies (Postgres, redis, mongo, whatever) in Docker so all I need on my system is Docker.

So much easier.


Docker is on my every growing list, so thanks for the insight! This is really good to know.


My core tools are Xcode, Python 3, Vim, Fira Code, LibreOffice, PyCharm CE, VLC, Visual Studio (formerly known as Xamarin; for .NET or Mono stuff).
I use out of the box Terminal.app, but with a brew bash.
A quick gander of brew: bash, boost, calc, cmake, coreutils, cscope, dmd, fdupes, findutils, gcc, gdbm, gettext, ghc, git, gmp, icu4c, ldc, llvm, lua, mit-scheme, pcre, readline, ripgrep, tidy-html5.
I don't use VSCode (but I see I've got it installed; it's v1.27.2 ... rather stale). Nothing against it, just don't use it. Likewise with Eclipse.
On my Windows box, I use Visual Studio.
The language I code in primarily these days are C++, Objective-C, Objective-C++, Python 3, Bash scripts. My lowkey languages are F#, C#, D, Swift, Lua, Scheme, CoffeeScript2, Elm, JavaScript, TypeScript.
What I miss most from my previous project which was in C#: TDD, NUnit, NCrunch, JetBrain's ReSharper, WPF, and Visual Studio. With NCrunch and NUnit (XUnit.net would be a good alternative too), TDD was actually fun to do. Fun! Yes, I said fun.


I recently did my new macbook setup too!, but I used dotfiles! :)


this way you can automate MANY things!! hope it helps :)


This is a thing I should really look into. Thanks Horacio!


if you do a github search for dot files you will get a lot of repos with examples!!

for example:

and MANY more :)


I recently restored from a Mojave time machine backup to Catalina on a new computer and it wasn't flawless, as I had to basically reinstall homebrew and its packages.

Fortunately brew bundle helped and most of my apps are installed with brew cask so they were simply listed there and one command later (plus the install time) I was back on with my apps and data (the latter from Time Machine) but I still had to nuke my entire homebrew directory, recompile Python and Ruby (which is understandable) and their packages.

The great thing about this is that I didn't have to configure much as my home directory was in Time Machine, I just went through the new "System preferences" to see what was new as I never had used macOS Catalina before.

My coding setup is pretty straigthforward: zsh + oh my zsh and iTerm2, git on the command line + github's cli, overmind to start processes from Procfiles and Sublime Text 3 as an editor with these extensions:

sublime text 3 extensions.

Probably the fanciest tool is overmind which is quite helpful on the day to day.


Why didn’t you make a Time Machine backup from your old laptop and then restore that backup on your new one? You would have both exactly the same


And the migration tool?

(But I usually use a new machine to start fresh, I copy over my home folder and re-install the apps as I need them. My dotfiles are in a repo, but if you copy over your home folder you will already have them. Setting up a new machine doesn't happen enough for me to automate it further. 😃)


I did all of this manually just because I weirdly enjoy that process lol

And there is definitely nothing wrong with that! 😂


There's something about a fresh new machine that I love and I actually kind of like the setup process. I didn't want to just copy/paste everything from my old machine. 🤷🏼‍♂️


It is definitely something special when you start from fresh. When I was working on Windows, I never used backup tools, I always reinstalled everything from scratch. But now on Mac, the Time Machine works so good that simply the swapping from one to another computer and immediately starting working on the new one without setting up a single thing, that is just incredibly convenient. Or maybe I am just too old :D

This was my first new machine in about 6 years so I just wanted to start fresh. If I was switching machines more frequently for some reason I could see the benefit in automating the process, for sure.


I recommend spectacle a window arrangement tool without I couldn’t live and code


Oh cool, thanks for the tip! Most of the time I just use the built in screen splitting and it's fine for most things.


True, but It lacks the nice key bindings :)


Sounds like my setup! Except I cannot get ESLint and Prettier to work side by side.. Any tips?


The extra touch screen on the new MacBooks has amazing potential for developers. I would use them to access npm scripts!


Have you thought switching Postgresql with Docker containers? Brew -> Docker -> Postgresql


This was awesome Emily! Really well done!