My Developer Setup

Jul 18, 2023

One of the quirks of spending the past 6 years at one company is that the majority of the coding that I’ve done in that time has occured on a company laptop. While this physical separation is great for work-life balance, it also means that whenever I open my personal computer to write some code, I’m usually met with a long list of out of date libraries and keyboard shortcuts.

To alleviate this problem, this document is a gift to future me. It’s a running list of all the various tools and tricks I use as a software developer.

Note that I use a MacBook. Not all of these will work/apply on windows

Terminal

Here’s how I make the Mac terminal look/work the way I want

  • starship.rs - all the good stuff with minimal setup
  • One Dark Theme - gotta love it when terminal and VSCode match. A nice little addition on top of starship
  • zsh-autosuggestions - a gamechanger. Way better than recursive searching.
    • To install:
      • `brew install zsh-autosuggestions“
      • Add source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh to ~/.zshrc

Environment Management

conda

I use Anaconda (via miniconda) to handle most of my global installation needs, including Python and Node.

Installing nodejs via conda

I’ve become a big proponent of using an environment manager (like conda) to manage node installation. Ever try to switch to a different version of node? It’s a pain. Sure you can use n but I think it’s much cleaner to let conda do it for you:

  • Install globally:
conda install -c conda-forge nodejs
  • Or create an environment and install a specific version:
conda create --name node16
conda activate node16
conda install -c conda-forge nodejs=16.20.1

Python

I set my default python.defaultInterpreterPath to that conda environment’s python shell so that whenever i open a new terminal in vscode, it automatically activates the environment

pnpm

I started using pnpm instead of the normal npm and have been loving it so far. Dramatically reduced install times makes for a much nicer developer experience.

VS Code

Workspaces

VS Code workspaces are very useful, especially when you’re working in a monorepo with a front-end and back-end that are written in different languages (e.g. TypeScript vs Python).

I use a multi-root workspace where I have both the front-end and the back-end so that they both appear at the top level of VScode’s file explorer and so I can track their git histories separately

Settings

Launching from the command line

I use the code command all the time to open files and directories in VS Code. A very easy install process, just follow these steps.

Extensions

Plus the official extensions for any language/framework I’m using (e.g. Svelte, React, Angular, Python, YAML,)

Software

  • VS Code - hard to imagine life without it at this point
  • Bettersnaptool - one of the only apps I have paid actual, personal money for. It’s worth the $2.99 to be able to hit-- and have my window snap to the right half of the page.