Pay for Good Tools
When I recommend software tools, I have a few favorites, including Cleanshot X, a fantastic screenshot tool that has enhanced my ability to communicate. Recommending paid products like this, given a wide enough audience, never fails to solicit a certain type of comment:
"That seems pretty expensive for something that I can do for free. My boss wouldn't pay for it anyway."
I respectfully disagree! And I'd like to make a case that a different perspective can put you in a different league of software engineers.
Throughout, I'm going to keep using Cleanshot as an example because it's that good.
Let's dig in.
"Seems Pretty Expensive for Something I Can Do for Free"
Expensive is a loaded term. I don't know your financial situation, but I think two things are true for the professional or aspiring software engineer:
- A one-time purchase of $29 USD is fair for a useful thing that a person made
- Being better at your job and saving your own time is worth paying for
On to the second part of the sentence: "...for something I can do for free." Having used both Cleanshot and Mac's equivalent tools, I can say with confidence that this is inaccurate. You can't do the same things, and when you can, it's harder.
A few examples:
- Annotating your screenshot? Mac's Preview is fine at this. Cleanshot is better
- Capturing the previous area, a powerful feature when comparing two website states? Nope
- Screen recording? You'll need a separate program like Quicktime
- Text recognition (OCR)? Preview does it, but it's built into Cleanshot, no screenshot required
- View your capture history days or weeks later? Scrolling capture? Hiding desktop icons? Cloud backup? None of the above
We aren't even digging that deep. Paying for tools means you get these features. And, because the creator is getting paid, they keep adding more! Is Mac adding features to their screenshot tool? Not at nearly the same rate.
"My Boss Won’t Pay for It"
Okay, on to the second part of this objection: your boss won't pay for it.
Your company should pay for the tools you need to get the job done. Building a test suite with limited experience? Have your company buy a course. Need a proprietary IDE for some special work you're being asked to do? Make your company buy it.
But, this is also a craft, and craftspeople in every specialty maintain their own top-of-the-line set of tools. Remember at the end of 'Top Chef' when a contestant is going home, and they pack up their knives? Mindfully packing up a set of rare, expensive, top-quality knives? They do this because they have a calling beyond a TV show. We can be craftspeople just like that.
If the only tools you use are those that your company pays for, you're going to deliver similar work to everybody else. When you leave, you don't bring that tool with you, and your competence with it is paused until your next employer buys it. Why limit yourself that way?
Pay for Good Tools
Pay for good tools. Do it selfishly, because we engineers all want to live in a world where people pay for software.
While many good tools are free, some of the very best are not. I bought Cleanshot, spent ten minutes learning how it worked, and now I have a vibrant channel to communicate that I didn't have before, that I'd pay a lot to keep.
Can you take this too far? Chasing tools, wasting cash? I wouldn't worry about it. Even those engineers who were way more excited than me about the latest shiny gadget have taught me a lot.
I'd like to thank my colleague Josh Branchaud for making this argument persuasively, a few times over the years.
Today I'm ending on a personal note: I'm looking for a new opportunity! When you hire me, I bring a box of high-quality tools that I've collected and sharpened. Some are free (Tmux, Vim, Ruby, Elixir, React, TypeScript, Postgres) and some are paid (Cleanshot, Figma, Dash, courses I've bought, a library I've curated). Perhaps I'll get to share them with you.