Development Tools

Here are software applications which I use for professional software development. I tend to favor native macOS apps when they are available, but will take an electron app when it is the better tool for the job. At the end I list some clutch hardware.


I am always in a terminal window, and I usually have more than one open. Tabs are nice for this, but panes are even better. Sure, I could open a single terminal and then use tmux, but I've never got into that habit. As an added benefit, iTerm2 can send keyboard input to multiple panes, which is super slick.

iTerm2 Website
Panic Nova

This is a very good web application IDE, perhaps not as mature as Visual Studio Code, but it is a native macOS app. I use this for personal projects, mostly for Elixir/Phoenix apps or Python/Django apps. For Javascript and especially Typescript apps I still switch to Visual Studio Codes which has a lot more language specific IDE helpers.

Nova Website
Visual Studio Code

I have recently switched to using VS Code as my main code editor for software development. As of yet I am not sure it is any better than Sublime Text, but time will tell

Visual Studio Code Website

Here are the plugins I frequently use:

Sublime Text

Prior to switching to VS Code, this was my favorite general purpose text editor. I started using it because it could quickly open and replace text in very large files. I kept using it because it makes navigating to files and sections within files quick (CMD-p to fuzy search file names, CMD-p then @ to search within the current open file) and it makes editing multiple lines at once very easy (columnar editing or at arbitrary locations with the CMD-d hotkey); for some text manipulation tasks this has replaced using small command line scripts. As an added bonus, it is also available on Windows (in addition to OS X and Linux), and the license is cross-platform. There are some very good text editors out there, but when you code for a living you should buy the best.

Sublime Text Website

Here are the plugins I frequently use:


Paw is a full-featured HTTP client that lets you test and describe the APIs you build or consume. It has a beautiful native macOS interface to compose requests, inspect server responses, generate client code and export API definitions.

Paw Website

This is a tool which locally centralizes developer documentation. You can either google your coding question and decide whether you want to trust the unknown person on Stackoverflow, or you could just look at the docs. I usually prefer the latter, so use it all the time when I am developing.

Dash Website

I normally just use the command line for git, but when I don't, this is the app I use.

Git Tower Website



I normally use a CODE 87-Key Mechanical Keyboard with Cherry MX Blue switches. It is a very nice mechanical keyboard with backlit keys and a removable cable. If I am doing pairing or need a keyboard when I am not at my desk, I still pull out my old Apple Wireless Keyboard (A1314, MC184LL/B). This is a surprisingly good non-mechanical-switch keyboard, it is much better than the new Apple Magic Keyboard. Sometimes I think about bringing when I travel with my 2018 Macbook Pro, which has a terrible keyboard with no-travel keys. The Apple Wireless keyboard somehow costs more than my CODE keyaboard, probably because it is no longer made and also better than the ones which Apple currently makes.

Wasd Keyboards Apple Wireless Keyboard

I switch between my old Apple Magic Mouse and a Logitech MX Master 2S. I like the non-mechanical touch interface of theMagic mouse, but it is not very ergonomic and more dust sticks to the bottom of it than other mice. The Logitech is functional and ergonomic, but the mechanical components are not as sexy.

Logitech MX Master 2S Apple Magic Mouse