Skip to main content
Test Double company logo
Services
Services Overview
Holistic software investment consulting
Software Delivery
Accelerate quality software development
Product Management
Launch modern product orgs
Legacy Modernization
Renovate legacy software systems
DevOps
Scale infrastructure smoothly
Upgrade Rails
Update Rails versions seamlessly
Technical Recruitment
Build tech & product teams
Technical Assessments
Uncover root causes & improvements
Case Studies
Solutions
Accelerate Quality Software
Software Delivery, DevOps, & Product Delivery
Maximize Software Investments
Product Performance, Product Scaling, & Technical Assessments
Future-Proof Innovative Software
Legacy Modernization, Product Transformation, Upgrade Rails, Technical Recruitment
About
About
What's a test double?
Approach
Meeting you where you are
Founder's Story
The origin of our mission
Culture
Culture & Careers
Double Agents decoded
Great Causes
Great code for great causes
EDI
Equity, diversity & inclusion
Insights
All Insights
Hot takes and tips for all things software
Leadership
Bold opinions and insights for tech leaders
Developer
Essential coding tutorials and tools
Product Manager
Practical advice for real-world challenges
Say Hello
Test Double logo
Menu
Services
BackGrid of dots icon
Services Overview
Holistic software investment consulting
Software Delivery
Accelerate quality software development
Product Management
Launch modern product orgs
Legacy Modernization
Renovate legacy software systems
Cycle icon
DevOps
Scale infrastructure smoothly
Upgrade Rails
Update Rails versions seamlessly
Technical Recruitment
Build tech & product teams
Technical Assessments
Uncover root causes & improvements
Case Studies
Solutions
Solutions
Accelerate Quality Software
Software Delivery, DevOps, & Product Delivery
Maximize Software Investments
Product Performance, Product Scaling, & Technical Assessments
Future-Proof Innovative Software
Legacy Modernization, Product Transformation, Upgrade Rails, Technical Recruitment
About
About
About
What's a test double?
Approach
Meeting you where you are
Founder's Story
The origin of our mission
Culture
Culture
Culture & Careers
Double Agents decoded
Great Causes
Great code for great causes
EDI
Equity, diversity & inclusion
Insights
Insights
All Insights
Hot takes and tips for all things software
Leadership
Bold opinions and insights for tech leaders
Developer
Essential coding tutorials and tools
Product Manager
Practical advice for real-world challenges
Say hello
Developers
Developers
Developers
Software tooling & tips

Setting up a new Mac for development

Holding onto an ancient macOS install because you're afraid of the hassle of setting everything up again? This video walks you through setting up a Mac from scratch, complete with lots of thoughtful configuration and developer automation.
Justin Searls
|
May 28, 2020
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Some people pride themselves on how many months they can reach in uptime, which leads to an ever-present dread of major software updates. Some people take it upon themselves to carefully configure and fine-tune the most trivial minutiae, which makes the idea of starting from a fresh operating system install an increasingly terrifying proposition. Some people have been using the same backup series for fifteen years, dragging untold corrupted files and buggy preferences from computer to computer in perpetuity.

Not me.

I aim for each of my computers to be as disposable as possible. If my system starts feeling slow or buggy or otherwise unreliable, I want to be able to wipe it and start fresh without losing days of productivity and without any lingering doubt that an important file or program failed to make the transition. That means minimizing manual customizations while automating as much as possible to get set up quickly. The trick is in striking the right balance: time-saving settings should be taken advantage of wherever the defaults are genuinely bad, and automation should be kept minimal enough that it doesn’t itself become a vector for carrying forward bugs from one install to the next.

I set up macOS from scratch (and not from backup) about two or three times a year, mostly due to my unusually fraught relationship with the software I use and the gradual accretion of bugs, inconsistent behavior, poor performance, and kernel panics that build up over time. This has led me to lean pretty hard into syncing all the stuff I really value to either iCloud Drive or GitHub, and building a suite of command line tools to make it easier to manage.

So, in this video, I take the opportunity to walk through how I set up a new Mac from the minute I first land on the desktop. I start by talking through my thought process as I configure the system, how I set it up for development, and then make sure everything works as I install and build a couple software projects.

In addition to all of Apple’s stock apps, a few other relevant projects and apps the video touches on:

  • My icloud-dotfiles repo
  • 1Password
  • Dato calendar
  • Myna for Google Translate
  • Things 3
  • Little Snitch
  • Homebrew
  • rbenv and nodenv
  • fzf and ripgrep

Spending 90 minutes to watch a video for ideas about how to set up your development machine might sound ludicrous, but I’ve found that any time that I invest in improving my own development experience has a multiplier effect on my productivity, especially when it can reduce the feedback loops of frequently-performed actions. If you check this video out, I hope you find something of use—and if you spot anything I could be doing better, let me know!

Related Insights

No items found.

Explore our insights

See all insights
Developers
Developers
Developers
C# and .NET tools and libraries for the modern developer

C# has a reputation for being used in legacy projects and is not often talked about related to startups or other new business ventures. This article aims to break a few of the myths about .NET and C# and discuss how it has evolved to be a great fit for almost any kind of software.

by
Patrick Coakley
Leadership
Leadership
Leadership
Turning observability into a team strength without a big overhaul

By addressing observability pain points one at a time, we built systems and practices that support rapid troubleshooting and collaboration.

by
Gabriel Côté-Carrier
Developers
Developers
Developers
Why I actually enjoy PR reviews (and you should, too)

PR reviews don't have to be painful. Discover practical, evidence-based approaches that turn code reviews into team-building opportunities while maintaining quality and reducing development friction.

by
Robert Komaromi
Letter art spelling out NEAT

Join the conversation

Technology is a means to an end: answers to very human questions. That’s why we created a community for developers and product managers.

Explore the community
Test Double Executive Leadership Team

Learn about our team

Like what we have to say about building great software and great teams?

Get to know us
Test Double company logo
Improving the way the world builds software.
What we do
Services OverviewSoftware DeliveryProduct ManagementLegacy ModernizationDevOpsUpgrade RailsTechnical RecruitmentTechnical Assessments
Who WE ARE
About UsCulture & CareersGreat CausesEDIOur TeamContact UsNews & AwardsN.E.A.T.
Resources
Case StudiesAll InsightsLeadership InsightsDeveloper InsightsProduct InsightsPairing & Office Hours
NEWSLETTER
Sign up hear about our latest innovations.
Your email has been added!
Oops! Something went wrong while submitting the form.
Standard Ruby badge
614.349.4279hello@testdouble.com
Privacy Policy
© 2020 Test Double. All Rights Reserved.