What hardware do you use?

I have a 256 GB Jet Black iPhone 7 and my AirPods with me at all times. If you have the kind of ear canals that can tolerate in-ear monitors, you should use those instead, they sound way better. I put my phone in an ElevationDock with a NanoPad that uses thousands of tiny suction cups to secure it to my bedside table.

My favorite pen is the Pilot Hi-Tec-C Cavalier, which unfortunately has been discontinued by Pilot Japan. I've tried a lot of different notebooks but I like the Kyokuto F.O.B COOP W Ring Notebook – B5 – Dot Grid – Silver best because it has a subtle dot grid and you can lay it flat to read it.

The 2016 Macbook Pro seems like a misstep to me. It has a lack of useful ports so I have to supplement it with an Arc Hub and a Belkin USB-C to Gigabit Ethernet adapter. If you want additional power chargers, you have to buy a USB-C Charge Cable and Power Adapter Extension Cable separately. A Power Adapter Extension Cable costs $19 and it doesn't even come with the laptop. The touchbar remains to be a gimmick to me and key travel distance on the keyboard isn't great.

At work, I use a Magic Mouse 2 and at home I have a discontinued Logitech V550 mouse that I love and buy new old stock of whenever I can find it. I also sometimes use a modifiedM0100 because I think its funny, but the lack of a right mouse button prohibits me from using it regularly.

I recently sold my HTC Vive because my house is too small for room-scale VR but am keeping my Oculus Rift until the next generation of headsets comes out. I'll probably buy an Oculus Go when it comes out.

I have an HP 7550A pen plotter which originally cost $3900 in 1984, but I picked up one in really good condition for around $100 in 2015 on eBay. It has a ridiculous set of adapters coming out of it (parallel to serial to USB A to USB C) but it produces some impressive plots. I've modified it to also use Pilot Hi-Tec-C refills.

I dabble in cryptocurrency but am fairly paranoid so I store the majority of my funds in a Ledger Nano S hardware wallet.

I got really frustrated with the wifi situation at my last place so I went a little overboard and bought enough network equipment to run a small conference in my home. This includes an EdgeRouter PoE, three Unifi AP AC Pro hotspots, and a Motorola MB8600 cable modem.

I collect old videogame systems, but my favorite console is the SNES. I prefer to play on the original hardware, so I own a Super Wild Card DX which takes 3.5" floppy disks (most SNES games can fit on 1-2 1.44 MB disks) and a sd2snes which can fit the entire SNES library on a single SD card. I also own a Super NES Classic Edition and a Raspberry Pi running RetroPie with USB Super RetroPorts so that you can use the original controllers.

If there is a theme here, it's that the hardware you love will become discontinued and sometimes won't be replaced by anything better. So if you can afford to, buy two (or three) of the them and set them aside for when the first one breaks.

Homebrew is one of the first things I install on any OS X computer because it has so many packages that I depend on. Sometimes I'll run iftop if my network connection seems particularly slow. I've found exiftool, imagemagick, youtube-dl, and ffmpeg to be useful enough to install by default on all my computers.

I mostly use git on the command line, but I will supplement my workflow with a variety of visual tools. I use tig to navigate through my previous commits and Github Desktop to select which files I want to go into a commit and do quick visual sanity checks of what I'm committing. For diffs and merging, I use Kaleidoscope.

A lot of my job involves testing the Slack API in various ways. I use a combination of curl piping to jq, Requester in Sublime Text, and Postman depending on what I'm trying to do.

ngrok is invaluable for testing various Slack Platform features that require an externally accessible endpoint, but I'll also use the Heroku and Google Cloud CLI tools when I need a more reliable environment.

ScreenFlow is great for recording interactions, I use it for providing examples in bug reports, demonstrating how something works, or just taking the risk out of a live demo. Monosnap is like a non-Evernote-tainted Skitch and I use it all the time for taking screenshots and annotating them.

I store all my passwords in 1Password but I've had enough bad experiences with iCloud to only sync it with Dropbox. I try to store everything in Dropbox and use Selective Sync pretty carefully to avoid filling up my entire hard drive.

I use Nativefier to create SSBs for both Gmail and Google Calendar. I listen to music on Spotify, but occasionally I'll use Cog to listen to some mp3s or iTunes to stream from my iTunes Match collection.

Whenever I'm writing Markdown, like right now when I'm writing the answers to these questions, I use MacDown. I also spend a fair amount of time writing in Sublime Text in Distraction Free Mode, Google Docs, and Dropbox Paper.

I use OmniGraffle to create flowcharts, Keynote for presentations, and Photoshop for image manipulation. Highlight is useful for pasting syntax highlighted code into a Keynote slide.

What would be your dream setup?

In most places I've worked, I've slowly acquired monitors until there's no room left on my desk to add any more until I do an ergo evaluation and they convince me to get rid of them all. For this reason, I'll be happy to switch to a VR headset as my primary display when they are high resolution enough to not make me want to throw up after using them for sustained periods of time.

My dream keyboard would probably be a Rama M65-A with an entire row of Jellykey keycaps. I imagine this interfacing with something like the Logitech BRIDGE so that it would work seamlessly in VR.

As far as software is concerned, I jumped ship from Windows to OS X around 10.6 "Snow Leopard", but with every new release of OS X, I feel like it's getting further and further away from an OS that helps me as a software developer. I think it's still better than Windows, despite the WSL, and the old joke that this year will be the year of Linux on the desktop still remains. I learned the hard way that developing for VR on OS X is an exercise in futility, so I'm hoping that something better comes around that replaces all of these – something that fulfills the original promise of UI/UX that "just works", a healthy app ecosystem, and the Linux toolchain that we expect.