Software I use, gadgets I love, and other things I recommend.

I get asked a lot about the things I use to build software, stay productive, or buy to fool myself into thinking I’m being productive when I’m really just procrastinating. Here’s a big list of all of my favorite stuff.

Workstation

  • 16” MacBook Pro, M1 Max, 64GB RAM (2021)

    I was using an Intel-based 16” MacBook Pro prior to this and the difference is night and day. I’ve never heard the fans turn on a single time, even under the incredibly heavy loads I put it through with numerous virtual machines and Docker containers whilst having 100 plus Chrome tabs open.

  • Bose QuietComfort 35

    A frind of mine gifted me these headphones a years ago and I’ve been using them ever since. It would be a rare site to find me anywhere with my computer and not have them on my head. Many nights I even fall asleep with them on! They’re super comfortable, lightweight and the noise cancelling is amazing. I use them for everything from listening to music to taking calls. The ability to isoloate myself from the world around me is invaluable to me. I have other headphones, like the Apple Pro Max, but I always come back to these.

  • AOC AGON Curved Gaming Monitor 49 inch (AG493UCX)

    It took me a minute to get used to the size but now I can’t imagine going back to a smaller monitor. I can have two full-size windows open side by side and still have room for a third window for reference material.

  • Asus VS278 27inch monitor

    Honestly, there's nothing special about this monitor. It's just a 27 inch monitor that I use in portrait mode as my secondary monitor. The 49 inch monitor is great for having multiple windows open side by side but I like to have a secondary monitor in portrait mode for reading documentation and reference material.

  • Logi C920 Webcam

    Working remotely since 2016 has meant that I’ve spent a lot of time on video calls. I’ve tried a few different webcams and this is the one that I’ve stuck with. I love the quality of the video and the fact that it has a built-in microphone. I’ve used it for everything from video calls to recording videos and I’ve always been impressed with the quality. I've since bought several of them for my family members to use as well.

  • WASD V2 104-Key Custom Mechanical Keyboard

    For the longest time I used the Apple Magic Keyboard. I just didn’t see the point in spending hundreds of dollars on a keyboard when I could just use the one that came with my computer. Then I tried amechanical keyboard and I’m never going back. Now I have serveral of these for each of my workstations. I love the tactile feedback and the sound of the keys. I’m using Cherry MX Brown switches and I’m very happy with them.

  • Apple Magic Trackpad

    I started using these back when I was using the Apple Magic Keyboard and I just never stopped. I use them exclusively now and I haven't used a mouse in close to a decade.

  • HAG Capisco Adjustable Standing Desk Chair

    I’ve had this chair for a few years now and it’s been great. I was a little skeptical when I first saw it,but the fact that it raises up super high so that I can use it at my standing desk, plus the design allowing you to sit in so many differnt positions won me over.I started using it when I was having some back pain and it’s been great for that. I can sit in it in a bunch of different positions and it’s been great for my posture.

Development tools

  • NeoVim

    I started off programming using Jetbrains IDEs PHPStorm, then WebStorm, then Intellij and eventually jumped onto the VSCode train with the rest of the web programming world. The only time I would use Vim was when I would be popped into the editor to write a quick Git commit message so for years I only knew the basic commands to switch between INSERT mode and NORMAL mode and `:wq` to write and quit out of the program but that was the extent of it.


    I would watch the programming YouTuber's like The Primagen fly around a project, making changes at the speed of lightening, never taking their hands off the keyboard and I told myself that I would learn my tools to be as effecient on day. A few years ago I took the plunge into learning Vim motions to use inside VSCode and then made the decision to take the time to learn the NeoVimediting enviornment as a whole.


    This was a few years ago and I’m never going back. The speed of use, plus the plugin ecosystem allowing for you to set up your editor in a way that exactly fits the way that you want to work is just a better development experience for me. There isn't a feature in my personal workflow that VSCode has that I can't replicate in NeoVim. Plus the portability of being able to use my same setup on any of my Proxmox servers, Linux containers and Virtual Machines I can't see myself ever giving up NeoVim

  • iTerm2

    iTerm2 has been the defacto terminal emulator for MacOS for years now and I’ve been using it for a while. I love the fact that it’s open source and that it’s super customizable. I’ve used it for everything from basically living in it as my editing environment using NeoVim to running scripts and ssh'ing into servers to manage them. I know there are others out there but I’ve never had a reason to switch.

  • Tmux

    I couldn't mention iTerm2 without mentioning Tmux. I started using Tmux a few years ago and I’ve never looked back. I love the fact that I can split my terminal into multiple panes and that I can detach and reattach to a session. I've customized it to my liking and I use plugins like tmux-resurrect and tmux-continuum to automatically save my sessions and restore them after a reboot. I can't imagine working without it.

  • Proxmox

    I’ve been using Proxmox for a few years now and I love it. I have quite a few servers that I run at home and I use Proxmox to manage the virtual machines and containers on them. I’ve tried a few other hypervisors and Proxmox is the one that I’ve stuck with. I love the web interface and the fact that it’s open source and free to use.

Technologies

  • Angular

    I was very early on the Angular train back in 2012 and I’ve stuck with it. I’ve tried React and Vue but I just love the structure and the way that Angular forces you to write your code. I’ve been using Angular since the AngularJS days and whist the framework has changed a lot since then and the learning curve has been steep at times (the need to learn Typescript, Observables via RxJs/NgRx etc), I’ve always found that I’ve been able to build complex applications with it.

  • Node/Express

    This is my go-to for building APIs. I’ve tried a few other frameworks but I always come back to Node and Express. I love the simplicity of it and the fact that Express just a thin layer on top of Node. I’ve built a bunch of APIs with it and I’ve never run into a situation where I couldn’t do what I needed to do.

  • MongoDb

    MongoDb used to be my go-to database for all of my projects. I love the flexibility of it and the fact that I can just throw data into it to spin up a prototype super quickly, yet it can also scale and is powerful enough to handle complex queries and large datasets. I’ve been using it for years now and it's a go-to tool for me depending on the project. Although lately I've been using PocketBase for my personal projects.

  • PocketBase

    I got on the PocketBase train about a year ago and I’ve really enjoyed the experience. I’ve been using it for all of my personal projects and I find that it makes spinning up a self-hosted database super easy. It's written in Go and it's super fast and lightweight. There's also a javascript sdk that you can use to interact with the database from your frontend applications, so I've used it to make 'backendless' applications where the frontend talks directly to the database.

  • Golang

    I started using Go a few years ago and I’ve really enjoyed the experience. I’ve used it to build a few small projects and I’ve always found that it’s super fast and easy to work with. The concurrency model is amazing and I love the fact that it’s a compiled language. I’ve used it to build a few APIs and I’ve always been impressed with the performance.

  • Python

    I started using Python back around 2016ish and I’ve used it for a bunch of personal projects. When it comes to scripting or building small utilities, Python is my go-to. I love the simplicity of the language and the fact that it’s so easy to read and write. I’ve used it for everything from web scraping to building APIs and I’ve always been impressed with how easy it is to work with.

  • PHP

    PHP was the first language that I learned. I used it for a few years before I moved on to other languages and I haven't used it in a while. I still have a soft spot for it. I keep hearing that it's constantly improving and projects like Laravel are doing some really cool stuff with it. I can't see myself going back to it for any serious projects but I still have a lot of respect for it.

  • Nginx

    I’ve been using Nginx for many years now and I love it. I’ve used it to serve static sites, it's my current main reverse proxy server to the multitude of services that I run in my sizeable homelab, and I use it as a load balancer between servers. I loved the relative simplicity of the configuration and the fact that it’s super fast. I’ve never run into a situation where I couldn’t do what I needed to do with it.

  • Caddy

    I recently got turned on to Caddy and I started using it for all of my personal projects. Nginx was already easier to use than Apache but Caddy is even easier. I love the fact that it’s written in Go and that it’s super fast. I’ve used it to serve static sites and reverse proxy to other services and I’ve always been impressed with the performance.

Design

  • Figma

    We started using Figma as just a design tool but now it’s become our virtual whiteboard for the entire company. Never would have expected the collaboration features to be the real hook.

Productivity

  • Raycast

    I used to use Alfred but I switched to Raycast a few months ago and I love it. I love the fact that it’s open source and that it’s super fast. I’ve used it to launch apps, run scripts, inseart emojis and search my computer and I been vey happy with it.

  • Obsidian

    I read a book about a year ago called ' Building a Second Brain: A Proven Method to Organise Your Digital Life and Unlock Your Creative Potential' by Tiago Forte and it really resonated with me. I learned about his PARA method for organizing notes as well as the Zettelkasten method and landed on a hybrid system between the two that works for me really well.
    I had never had a really solid note taking program until I started using Obsidian. I love the fact that it’s just a bunch of markdown files and that I can use my own file system to organize them. Everything is local to my filesystem so the privacy aspect was a major factor for me. I use Syncthing to keep my notes in sync between my workstation and my mobile devices so that I can also take notes on the go have them automatically placed into my system.
    With everything being local and only markdown files, that meant that I could also use my go-to NeoVim editor to be able to take notes right in the same terminal that I'm working in as thoughts or little code snippets that I'd like to save happen throughout the day. I organize all of my projects in it and it houses all of my knowledge bases in one susinc place. The ability to link note together via taggin and also visualize those connections leading to creative ideas sparking into reality has been a true game changer for me.
    I’ve been using it for a few months now and have pulled in all of the various notes from the multitude of systems that I've used over the years to record my thoughts and the insights just for that activety has blown me away. I couldn't be more happy with it.

  • Syncthing

    Syncthing is an open-source, peer-to-peer file synchronization tool that allows users to securely and efficiently synchronize files across multiple devices. I use it to keep my Obsidian notes in sync between my workstation and my mobile devices.