I've spent a decade honing my engineering and design workflows, but never
really bothered to share all the tools that make my days more productive and
enjoyable.

My main criteria when evaluating the tools I use each day are:

Do they enable me to work close to as fast as my brain can think?

Do they make the experience of working a joyful and rich experience?

Here's a list of all the tools I use on a near-daily basis, and why
they make me a better craftsperson:

Quicksilver

Quicksilver is the original Mac app launcher. Although it sometimes feels dated
next to Spotlight, it's scriptable and lets you perform actions on your
searches. Although if I'm being honest, I usually just use it to launch apps
rapid-fire.

If you're still hunting for apps in your Applications folder by hand,
definitely download Quicksilver and work it into your workflow. You'll be
surprised you could live without it before.

Divvy

Ever get frustrated trying to optimize your screen real estate in OS X? I like
to work with a terminal on one half of the screen and a browser on the other.
Trying to size the windows in this way using the mouse cursor is a bad time.

Divvy is a window management tool for OS X. It allows you to quickly size
windows into exact screen portions.

I have mine configured for three quick keyboard shortcuts to allow me to make
the currently-focused window occupy the left half, right half, or entirety of
the screen:

OmniFocus

I've tried so many personal task management tools and OmniFocus is the best one
there is, hands down.

Built by disciples of David Allen's Getting Things
Done methodology, OmniFocus keeps all your tasks
organized by project and context.

My favorite feature is the Inbox, where new tasks live until you get a chance to
sort through them. It has integration with iOS's "Send to" feature, so I'm
always able to forward articles and ideas directly to my OmniFocus for later
reading without losing a beat.

Notational Velocity

OmniFocus is amazing for tracking tasks, but often I just need to archive bits
of information for retrieval. This might be account numbers, usernames, license
keys, or lists of books I want to read.

Mailplane

I've tried so manyfreaking Mac mail apps.
All of them have a common problem: They're slow when put under real-world load.

I delete a ton of email, just like I'm sure you do. I found that every desktop mail
app I used would lag when I was doing rapid-fire deletion.

That's when I found Mailplane. It's a Mac app that wraps a nice desktop
interface around GMail. Although it doesn't satisfy my dream of having a single
inbox for all of my three email accounts, it does a great job of showing me
my email, letting me batch through all my messages to get to zero, and getting
the hell out of there.

Vim

Vim is the best text editor on the face of the earth.

And that will be the most hotly-contested statement on the face of the earth.

But seriously: Before you learn them Vim keybindings seem archaic and confusing.
But they're built for speed. And once they're part of your muscle memory,
they'll come as natural to you as the alphabet.

As I said before, one of my criteria for choosing my tools is if they get me
closer to being able to work as fast as I think.

Here are some of my favorite Vim plugins that enhance my workflow:

vim-pencil: Rethinking Vim as a tool
for writing. I'm using it to write this!

ctrlp.vim: Full path fuzzy finder
for Vim. It's like the Quicksilver launcher for your text files.

Tmux

Tmux is like Divvy (above) for your terminal. Split a terminal window in half
without using the mouse, deploy new shells, and keep your entire session
running even if you close your terminal window. Here's me editing this article
using it (and Vim) right now:

Probably the biggest reason I use Tmux is because it enables IDE-like
functionality without leaving the terminal. For those of you using Emacs, you
might not find a use for Tmux in your toolbox. But being that Vim is a text
editor first and foremost means you have to look elsewhere to do things like
display an editor and shell in the same screen.

Tmuxinator

Tmuxinator enhances the Tmux experience by giving you the ability to fully
configure Tmux workspaces and launch them with a single command.

Imagine you're working on three different web projects. Each of them has a
server process, a file you're editing, and maybe a test runner. Instead of
launching all of these as separate terminal windows every time you want to
switch projects, Tmuxinator allows you to configure Tmux workspace templates so
that switching projects is as simple as typing mux my-project.

Plus, in case you ever accidentally close a terminal window like I do all the
time, your session is saved right where you left off. Just use Tmuxinator to
re-launch your session and everything will be right where you left it.

Powerline

Middleman

If you're not using a static site generator for your blog, I implore you to
consider it! It reduces your maintenance overhead since you don't need to bother
with configuring and maintaining a server or database.

And with services like Disqus and my own
Formbot, it's hardly necessary to run a server
application for most blogs.

Yes, and I spent $100 on custom keycaps. It's not for everyone. But I can tell
you my fingers are happy all day long pecking away on this gorgeous keyboard.
And like a good mattress, a good keyboard returns on investment over years of
constant use.