2011-01-04

Where I Talk About Myself

It’s well-known that putting people to work in the right area can make all the difference between your star employee and the one who burns the building down. I seem to be more particular than most, so in addition to working on my discipline to do what I’d rather not, I thought I’d give any future managers a quick overview of my inclinations.

I specialize in generality. That is to say, I love knowing little bits of a lot of things. Whenever I find an interesting library or application, I add it to an extensive list of online bookmarks for easy recovery when needed. A friend of mine was starting a project that needed to quickly transmit large application states across the network; the web programmers in the group wanted to use JSON, while the C programmers preferred a rickety homebrewed binary format. When I was asked, I first suggested Google’s protocol buffers project, then, when that proved to be too complicated for their needs, BSON, which met both the simplicity requirements of the first group and the performance requirements of the second. It ended with me quite pleased with myself.

I have a particular dislike of most issue trackers, so I’ve tried many and can provide pros and cons of each. I can find you an OS, a webserver, a programming language, a framework, a templating library, a graphical toolkit, or damn near anything you need. Now that I’m writing this, it seems rather strange, since I was quite certain I hated requirements-gathering. But what I’ve described, my dear reader, is exactly that, and the fact that I’m addressing programmers and sysadmins rather than “customers” gives me little solace.

I believe that those who love their work in this field do so for one (or some combination) of three reasons. The first is the mental stimulation gained from solving puzzles; the second, the wonder of creating anything you can imagine, out of nothing. While these are perfectly fine motivations, I am primarily interested in the third: the joy of solving a problem for someone.

For this, I thrive in support roles. You’re tired of copying and pasting emails into your issue tracker? Here are three options that will create bug reports when you send emails to them, and I can hack up a Python script to do that with our current software, if you prefer. Frustrated with the poor copy-editing in your team’s documentation? I’ll have the CI tool run a few scripts to check for commonmistakes and email the team the offending member’s name in case of failure.

(As a sidenote, this puts me in a strange position, halfway between programmer and system administrator. I haven’t quite figured out what job title I should be looking for, so if you know, please share!) Editor’s note: the position is generally referred to as DevOps.

This also manifests strangely in that I don’t really like to work on a project from scratch - if I could be paid to work solely on refactoring (making things more pleasant for my fellow programmers, but producing no visible change to those further out), I would be a happy man. I suppose this is that drive combined with a bit of OCD and a desire to see things done The Right Way.

In the end, I suppose I’m just an inexperienced 21 year old, blabbering about how much he knows while still wet behind the ears. It is my sincere hope, however, that you have come to understand me a bit more, for better or for worse. Honesty is, after all, the best policy.