What A Grumpy Programmer Uses - 2018 Edition post

January 5th, 2018

I really like browsing through Uses This to see what folks from all sorts of industries use to get the job done. Since they are unlikely to invite me, here's my own details. I share in hopes of discovering new tools for doing my job and showing folks who haven't been doing this for 20 years what "professional programmers" use. You might be surprised.

Who are you, and what do you do?

Monday to Thursday am I working for Mozilla as part of the Firefox Test Engineering group where I test web services that Firefox talks to, along with deployment testing of some internal developer tools and a generic JSON document store that we built ourselves.

On Fridays I continue to work on Grumpy Learning stuff. I'm currently writing a "how to test legacy PHP code" video training course for a large online education provider and are organizing a personal-development course called GrumpyConf that will be held March 22-24, 2018. No new books on the horizon and I currently only appearing at phptek 2018 in late May of this year.

If you want me to come speak at your event in the fall, get in touch.

What hardware do you use?

My main device is a 13-inch 2016 MacBook Pro with Touch Bar with 16 GB of RAM and a 512GB SSD drive. It runs in closed-mode 99.999% of the time plugged into a Dell P2715Q display and I use the Apple Magic Keyboard and Magic Mouse 2. When I travel I bring a Roost laptop stand with me. Being a Large Human using the Roost has made it so I can actually work in environments other than my configured-for-me home office.

I also make heavy use of an iPhone 6S Plus mostly for messaging and Twitter use. I also have a Samsung Chromebook that I can do some PHP web development work on but it is not powerful enough for the day job. I tried it out to see if it was suitable as a road laptop for a world where border crossings can quickly turn ugly. Right now it's not.

I listen to a lot of music (yay Spotify) and since I did notice the poor quality of audio from my laptop I splurged and bought a DragonFll USB DAC along with the Jitterbug USB data and power noise filter. I now have awesome, clean-sounding music coming from my desktop speakers.

And what software?

I use macOS (always using the latest stable version of it -- patch your systems people!) as my development environment and some flavour of Linux (usually Ubuntu) as a deployment environment.

When I am doing Python (which is what I use at Mozilla) I am using PyCharm and if I am doing PHP I am using PhpStorm. For everything else I am using Neovim. I used to be a Vim-only person but over the years I have found the value that IDE's provide me to be invaluable. They have totally-acceptable-to-me Vim bindings anyway.

I make heavy use of the CLI and use iTerm2.

For work I rely on the following tools every single day:

  • IRCCloud for talking to co-workers
  • Mozilla uses Google Mail and Google Calendar, which works nicely with my phone
  • Vidyo for video conference -- great product, works well
  • Firefox web browser. I run the Nightly version

When I do my podcast with Ed, I use Skype with the Call Recorder plug in. I send the recording of my side to him and he fixes it all up.

On my iPhone I use the following apps quite a bit:

I also use all sorts of other apps (messaging ones mostly) like any long-time user of an iOS device.

I am a competitive-casual Magic: The Gathering player, mostly playing the Legacy format (but with a splash of Vintage and the random cube or EDH game mixed in). For many years I was frustrated with my lack of success at the tournament level. I was lucky enough to fall in with a group of people who made me realize that I actually enjoyed the social aspect of the game the most.

What would be your dream setup?

I've worked from home for 11 years now -- I never want to go back to a full-time office experience ever again. I'm totally happy with my computer and my display and all the other tools I use. I tend to upgrade things incrementally instead of in big shots. I like consistency and the ability to quickly get back to work when upgrading any of my equipment.

I hope this helps! Got any more questions or suggestions of things I should check out. Hit me up on Twitter or via the email link in the sidebar.