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.