Software Tools I Pay Real Money For

I've grown fond of paying for Good Things That Work. In the last year, I have paid for, and intend to continue to pay for, these great tools.

JetBrains Intellij IDEA

When I worked for Google, the default IDE was Eclipse. Eclipse taught me what a "true" integrated development environment can offer out-of-the-box: debugging, refactoring, highlighting for various reasons, one-click fixes, truckloads of shortcut keystrokes, solid plugins, etc. However, Eclipse always felt like under-supported open source software. For example, it often used way too much memory, and occasionally froze for whole minutes while I burned incense, praying that hours of my life hadn't just been lost.

Last summer, I decided to try IntelliJ IDEA to write big data pipelines in Java. IDEA feels faster, more reliable, and better supported than Eclipse ever did. What's more, other JetBrains products feel the same, clearly there's a lot of shared code between IDEA, PhpStorm, DataGrip, etc.

One complaint I have, and I recognize JetBrains likely considers this is a feature-not-a-bug, is the default shortcut keys. The F-keys and Control key are used a lot, which is difficult for a Mac. Why is this not a bug? Because the default shortcut keys are the same for every platform. I could just as easily use IDEA on a Windows or Linux box because there's nothing new to learn there. Rather than re-mapping to non-defaults (I'm generally a fan of using default settings whenever possible), I have OS X configured so the F-keys are actually F-keys, and I normally write code with a full-size, USB keyboard, instead of on the laptop keyboard.

JetBrains DataGrip

In the last year, I've interacted with MySQL a lot, and my goodness, MySQL Workbench is terrible. I do use it to build EER diagrams, which I to sufficiently infrequently that I haven't looked for an alternative EER tool.

I've also interacted with Amazon RedShift, which is what happens when PostgreSQL makes babies with aliens, so uses the PostgreSQL driver. And SQLite. Wouldn't it be cool if one database management app could interact with multiple database types/vendors? What if that app were implemented in Java, so any JDBC driver could be plugged in? What a grip I would have on my data!

Thank heaven for DataGrip. It's modern, speedy, and feels like IDEA. It can format your SQL queries and even has fancy-pants context-sensitive SQL auto-complete.

JetBrains GoLand

I've used vim, Atom and GoLand to work with Golang. I was spoiled with Visual Studio in college, and later Eclipse, so have been looking for a proper IDE for Golang for a while. While vim-go offers a lot for a vim plugin, and Atom has a ton of community support, they are just text editors. I have also considered taking Visual Studio Code for a joyride, but again, just a text editor.

GoLand answers the call. It is IDEA for Golang; in fact there is Golang support for IDEA, but I prefer the vertical integration in GoLand. A few things are still missing, for example, Option-Enter invokes a context dialog to apply various pre-baked fixes and completions. This dialog isn't as complete in GoLand as in IDEA/Java.

JetBrains Toolbox

Once you've bought the JetBrains "All Products Pack" subscription, you may as well install this gem. JetBrains Toolbox lives in the OS X menu bar, making installing, updating, and removing any JetBrains product a two-click affair. Much easier than downloading a .dmg every time there's a new release.

Mizage Divvy

Using a 4K monitor (43 inch television in my case) requires good window management discipline, and OS X doesn't ship with an adequate solution. There are a few tools available for this task, and I'm using Divvy today. I use it with the mouse, which is a little annoying, but on a 6-by-6 grid, a mouse really does make it easy to re-arrange several windows in a couple of seconds, to eliminate window overlaps.

The next time I setup a new Mac, I'll try AppGrid, which is keyboard-driven.

SparkLabs Viscosity

I started with an open source VPN client, but had some problems that I have since forgotten. Install Viscosity and VPN just works. I interact with Viscosity with two clicks, roughly three times per day.


1Password provides me with the illusion that my secrets are safe, and that's about the best I can hope for.

I tried LastPass for a couple of months. It certainly does things differently under the covers; I switched back to 1Password.

The ability to generate random passwords with constraints is probably as important as storing passwords securely.

Markdown Plus

JetBrains products have a great markdown plugin, but a dedicated markdown editor is sometimes useful. I tried Markdown Plus when I needed Mermaid support, which Markdown Plus offers built-in, no plugins or special config required.

Sometimes I just want to edit markdown documents, without an IDE. For example, a project requirements/design project doesn't need programming language support, and may benefit from Mermaid.


Turn a conference room TV into a Chromecast and AirPlay display in a few seconds with AirServer. Share your desktop, iPhone or Android device screen, no special app required. Neat!

Image credit: Bijay chaurasia, Wikimedia Commons, License CC-BY-SA 4.0

Show Comments