About seven months ago I officially put out my shingle as a consulting pair-programmer. Since then I’ve logged around 250 hours of pair programming with at least 60 different programming partners. Most of that was paid sessions, but I also did one free Open-Source session per week. Until RubyTapas subscriptions started shooting up at the end of last year, pair programming was my primary source of income.
“Consulting pair programmer” isn’t exactly a crowded niche. I know of some other freelance programmers who do a lot of remote pairing, but I’ve yet to hear of anyone else making a living on short (2-hour) sessions with many different clients. I wasn’t at all sure what the response would be like when I started the experiment. I half expected that I’d get an initial burst of interest which would then tail off after a month or two.
In actuality, the response has yet to abate. I’ve had little trouble filling my available time with pairing appointments, and I’m still receiving a steady stream of new inquiries every week. All this from no PR other than some links on my blog and an occasional mention on Twitter or Ruby Rogues.
It’s been a remarkable experience. Getting to see the Ruby world from the perspective of many different programmers with a broad range of experience has been incredibly valuable. Especially as someone who tries to put a lot of educational material out, I can’t think of a better way to get an idea of where people are coming from, and what concepts they have the most trouble with.
It has also been exhausting. As anyone who with pair-programming experience knows, a productive pairing session can leave you much more drained than the equivalent amount of time spent solo coding. Pairing keeps the focus and energy high. Not to mention that when people are paying for my time, I have a strong imperative to be 100% “on” from beginning to end. Some days I did four sessions—that’s four different people, working on four different projects—in a row. Those were exhilarating days, but also some of the most tiring I’ve known in my career.
In late September I launched RubyTapas, my subscription screencast service. Since then it has grown by leaps and bounds. As of today it has well over 1000 subscribers. This has caused a shift in my priorities. I’m no longer a consultant with some products on the side. RubyTapas is my primary source of income, and hence it is now my focus.
The months of transition, during which RubyTapas wasn’t yet big enough to support us, but still required a great deal of time in order to turn out three videos a week, were difficult. Keeping up with enough pairing sessions to pay the bills; spending many hours writing, recording, and editing videos; and oh yeah, also dealing with a new baby with only a tenuous grasp on the concept of “sleep”… let’s just say I didn’t get a lot of rest. We talk about technical debt; I feel like I’ve run up some stress debt which it’s now time to pay down.
Which is why I’ve decided to put my pairing services on hiatus for a while. I’m going to focus on making videos, finishing Confident Ruby, and on my rather full 2013 conference schedule. I’ll obviously be keeping my scheduled appointments, and those of you on my OSS pairing queue: don’t worry, I’ll keep going down the list. But I’m taking down my pairing contact form for now.
There’s a lot I could write about my experiences pairing with so many different developers. I’m not really sure where to start though, so I’d like to open the floor instead. What would you like to know? As they say on Reddit: AMA!