Skip to content

Bootstrapping My Linux Desktop and MacBook for Dev Work

After transitioning through two new jobs recently, I had the opportunity (and challenge) to set up fresh dev environments on both a Linux desktop and a MacBook. Here’s my comprehensive checklist and setup notes, including tooling, config files, and references I found useful.

Set up new computer for dev work

Software Setup

1. Docker Desktop

  • Mac:
    Install Docker Desktop for Mac
  • Linux:
    sudo apt-get update
    sudo apt-get install docker.io
    sudo systemctl enable --now docker
    sudo usermod -aG docker $USER
    

2. Visual Studio Code

3. IntelliJ IDEA

4. Slack

5. GitHub Copilot

6. Homebrew for Mac

Install only if you are using it for terraform, npm, or jq.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

7. Kubectl

  • Mac:
    curl -LO "https://dl.k8s.io/release/$(curl -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
    chmod +x kubectl
    sudo mv kubectl /usr/local/bin/
    
  • Linux:
    curl -LO "https://dl.k8s.io/release/$(curl -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
    chmod +x kubectl
    sudo mv kubectl /usr/local/bin/
    

8. Java (OpenJDK)

9. Python

10. Terraform

brew tap hashicorp/tap
brew install hashicorp/tap/terraform
Terraform Install Guide

11. npm (via Node.js)

brew install node
Node.js Docs

12. jq

  • Mac:
    brew install jq
    
  • Linux:
    sudo apt install jq
    

Configuration Files

1. AWS Config

Set Up AWS CLI

Mac

curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /

Linux

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
Install Docs

Set up AWS config and credential

aws configure

follow the prompt:

AWS Access Key ID [None]: YOUR_ACCESS_KEY_ID
AWS Secret Access Key [None]: YOUR_SECRET_ACCESS_KEY
Default region name [None]: us-east-1
Default output format [None]: json

2. Kubeconfig

Copy your kubeconfig to:

~/.kube/config
Or use:
export KUBECONFIG=/path/to/kubeconfig.yaml

3. GitHub SSH

ssh-keygen -t ed25519 -C "you@example.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Then add the public key to your GitHub account:

cat ~/.ssh/id_ed25519.pub