Originally written on January 30, 2020

I've always been a sucker for process—maintaining and curating my dotfiles for several years now, and switching up technologies more often than I complete projects. To that end, I've decided to follow the leads of Wes Bos and Adam Wathan by publishing a living document of what I'm currently using on the software and hardware end of things—in the hopes that it may be as interesting to other people as it is to me, or perhaps helps someone along the way.

Editor + Terminal

  • Vim is my favorite editor to use for building and test-driving Laravel apps. I've got a pretty good setup that I'd put up against PHPStorm for most things—I can quickly open files using fuzzy finding, run tests from files, set breakpoints and debug, scaffold out files using intelligent snippets and have light autocompletion.
  • Tmux is used to extend Vim's functionality. Each project I work in has their own Tmux instance. By opening Vim in Tmux, I can open a test file, run leader + t to run a test, which will open up a new Tmux split with the details of the test results. Other Tmux splits are opened for heavier git commands and compiling frontend assets.
  • PHPStorm is definitely still used for larger projects (hello, Magento). I could probably use Vim for these projects as well, but I heavily utilize PHPStorm's various search functionalities, as well as its ability to autogenerate / update docblocks, refactor methods, etc.
  • Palenight theme is used across all of my editors and terminals, and is probably the color scheme I've stuck with the most over the last couple of years. Before Palenight I used Elementary OS's color scheme.
  • iTerm is my terminal of choice. I switched to it because … everybody else was? Honestly I don't give too much thought to which terminal I'm using—as long as it can handle true color support (I like a good looking terminal and editor experience) and Tmux, I'm good.

Desktop Apps

  • Things is my most recent attempt at sticking to a Getting Things Done mentality. I like its no-nonsense approach to setting tasks, though Apple's latest OS updates might have me switching to their native Reminders app …
  • Expressions is occasionally used for testing out regular expressions. I'm not the biggest fan of regular expressions, but this app beats dragging the internet in search of some regex pattern on Stack Overflow.
  • Paw is what I'm using for testing API endpoints. It's similar to Postman, but a little more polished (albeit Mac only).
  • TablePlus is my database GUI. I switched to it at work because I needed a Mac app with Microsoft SQL Server support, but was pleasantly surprised when it more than exceeded what I previously used Sql Pro for.
  • The Affinity suite of products is my answer to Adobe's Creative Cloud subscription. I don't use Photoshop, Illustrator or InDesign enough to justify a monthly subscription, so I purchased Affinity Photo, Designer and Publisher for a one-time fee to fit my needs. Despite the lower price tag, Affinity's products are no slouches—I've been able to achieve 100% switchover from Adobe with no issue.
  • I like working with Sketch for UI work. I picked it up because it seemed to be the industry standard, and I liked their one-time purchase pricing model over Adobe. Which is ironic, considering they switched to a subscription-based fee (though their price is easier to swallow than CC's).


  • The Jarvis Bamboo Standing Desk is what I have in my home office. It's a workhorse of a sit-to-stand desk with heavy steel legs and four configurable desk heights. It was initially a tough purchase for me after using a cheap IKEA desk for so long, but I love being able to switch from sitting to standing with no context switching and a simple button press.
  • I'm currently using two 24" Dell monitors held up by an Amazon Basics Dual Monitor Stand. This combination is perfect for me and my desk. The Jarvis standing desk option I selected is the smallest footprint because of a small office situation, so I need all the desk space I can squeeze out. The dual monitor stand clamps on the back of the desk, taking up almost zero desk room, and the monitors hover at perfect eye level for me.
  • I use a fat marker Sharpie and paper for prototyping. This forces me to keep details at a low fidelity, keeping details sparse so I don't back myself into a corner when building out the actual functionality during the development phase. I picked up this method from Ryan Singer of Basecamp, which is detailed in Shape Up.