Some time ago I found myself captivated by watching another developer work. Not anybody that I work with or know in person, but the infamous Notch. Throught some twist of fate I stumbled across a live stream of his and spent a non-trivial amount of time watching boxes and code fly by in Eclipse.

Inspired, I figured I would try out the same set up on my own. The first major hurdle to overcome was actually streaming my desktop to Justin.tv. After a full evening of searching, and tinkering with ffmpeg, I managed to get this script working well enough to send audio and video across the internets.

With the “infrastructure” figured out, I started hosting a couple of sessions while I worked on projects that I’m passionate about. I found the live coding concept immediately useful when I managed to get live help from an engineer at Puppet Labs while I dug through the Puppet::AST parsing code.

Taking the experiment further, I even tried helping some folks on IRC with “live support sessions” which were so fruitful that I posted a couple videos (1, 2) from them. In the office, I can say “hey, come over here and look at this” when others need help, and the live coding stream allowed me to extend that concept to practically anybody I wished to help.

I haven’t helped anybody in a few months now, I use my typically viewer-less sessions to help me focus on a single project. Whenever I turn the stream on, I’m pair-programming with a companion who may or may not be there (considering the #codingwithrtyler channel on Freenode is generally empty, I’m guessing there’s nobody watching), but I focus just as if I had another engineer sitting next to me.

It’s almost like a weird hybrid of pair programming and rubber duck debugging now that I think about it.

The projects I work are not nearly as visually pleasing as Minecraft, and I don’t have the geek fame that Notch has but I’m perfectly content to stream my desktop to zero viewers as long as it proves useful for evening and weekend hack-sessions.