As a software developer that takes pride in what I do, I am always looking to refine my dev setup, processes and workflow. By following tech blogs, podcasts, youTubers etc and working with a load of other like-minded developer geeks then my standard dev setup continuously evolves.

This post is a living document that documents my current set up. This is primarily for me as I have a workstation at work and home, desktop and laptops, these, from time to time get replaced and all my tools have to get installed and set up afresh. This post helps me get things sorted!

Hardware

  • Machine

I prefer to use an Apple Mac. If working for a client using their hardware then it is usually a windows laptop, but by choice I would always choose an Apple. At work, I have one of the last Intel iMac Pros. At home, I have a Mac Studio and an old and new-ish MacBookPro.

  • Screens

I have been through many different screen setups (and will blog about this sometime). The best setup for me is two monitors.

  1. A primary setup centrally, straight ahead of you
  2. A secondary setup to the right in portrait

Now the eagle eyed of you will spot a 3rd monitor at the bottom. This is a portable monitor that I use with my laptop when I travel. I find a 3rd monitor a distraction and will almost always be used to display chat windows, email, mastodon clients etc that will invariably just distract me.

At work, I have 3 monitors, one either side of the iMac in the Tie Fighter setup. Tbh, one of these is largely redundant most of the time. Sometimes useful to have documentation up on one and a localhost website being developed on the other, with the main dev IDE on the iMac.

  • Keyboard

I use a mechanical keyboard both at home and work which is more comfortable and allows a bit more customisation. At home, I have a 75% 83 key Vortex Race 3 and at work a 87-key WASD v2.

  • Mouse

Apple’s Magic Trackpad is fantastic. Reduces RSI, and with all the gestures it supports, is more productive.

Applications / Tools

 Rider Plugins
 .NET Core User Secrets
 Azure Toolkit for Rider
 GitHub Copilot
 Godot Support
 gRPC
 Docker
  • Jetbrains DataGrip for sql IDE
  • Docker that allows me to create and run containers locally
  • Fiddler for monitoring/checking web requests
  • Postman for testing APIs
  • Fleet lightweight text editor for reviewing / editing text (config) files
  • iTerm2 turbo charged replacement for Terminal
  • Hugo the website builder I use to create this site
  • Pixelmator image editor
  • Affinity Designer for vector graphics (svgs)
  • Godot Cross platform game engine

Utilities

  • Magnet a window manager for Mac. Keeps things nice and aligned just like every OCD needs them.
  • Pastebot a clipboard manager. Retains history, lets you copy multiple things and then paste them in turn, apply text transformations on paste.
  • Notes may reevaluate this at some point, but I have so many notes on here and it just works seamlessly across all my devices.
  • Karabiner Elements a keyboard mapper
  • 1password password manager
  • Yubikey usb security key

Distractions

  • Ivory A decent mastodon client from the makers of Tweetbot
  • MS Teams A bit rubbish, but used at Cortex as our messenger, calls. Could be great, but the app is just a bit flaky.
  • Discord Am part of several nice groups (servers)

Setting up my terminal

I do a lot from the terminal, both from within the Rider IDE, but primarily via iTerm2. I now have a number of extensions and additional applications installed. This section runs through these.

Prerequisites

Make sure brew is installed and up to date.

Run the following to update it if it is already installed…

    | => brew update
    
    You have 11 outdated formulae installed.
    You can upgrade them with brew upgrade

You may be advised to upgrade any outdated items.

    | => brew upgrade

    You have 11 outdated formulae installed.
    You can upgrade them with brew upgrade

If it isn’t installed then install it more info here:

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

setting up ohmyposh

  • install nerd fonts

        | => brew tap homebrew/cask-fontsbrew install --cask font-jetbrains-mono-nerd-font
        | => brew install --cask font-jetbrains-mono-nerd-font

  • pull down and install oh my posh

        | => brew tap jandedobbeleer/oh-my-posh
        | => brew install oh-my-posh
        | => cp $(brew --prefix oh-my-posh)/themes/jblab_2021.omp.json ~
        | => cp $(brew --prefix oh-my-posh)/themes/jandedobbeleer.omp.json ~

  • add oh my posh to the zsh profile. You can find My .zprofile here (oh my posh eval is at the bottom of the config file).

  • set up iterm to use the nerd font

preferences -> profiles -> text -> font

Install Azure CLI

    | => brew update && brew install azure-cli

azure-cli

Install GitHub CLI

    | => brew install gh

Github CLI

Install Powershell

    | => brew install --cask powershell

Powershell on MacOS