Over the next couple months, I will be shadowing developers at various companies. This is primarily a journey of self-improvement, I want to see how others work to learn more about what makes a great programmer.

Complexity

One of the biggest challenges we face as programmers is understanding complexity. There is a lot of effort and literature around how to avoid creating it, but we still have to tackle complex code on a daily basis.

What I’m interested in is the process people go through to deal with this challenge. Our community is filled with really smart people, and I suspect that we’ve each solved this problem in different ways.

I have my own process, but I want to see these other approaches in action. I want to look into a tangled mess with someone and see it slowly start to make sense.

Tools

I like emacs. No, this isn’t the start of a flame war, but I’ve become incredibly proficient with this tool. There are a lot of other tools out there, and I’d like to see them used by someone who knows what they’re doing. Not just editors, either, anything that could have a profound impact on how I work.

What To Expect

This is largely up to the person being shadowed. I can be an outside observer or participate more like a pair programming session. I can ask a bunch of questions or keep my mouth shut all day. The key thing is I don’t want to get in the way, and I’m happy to lend a hand if asked.

There are a few things I’d like to include, but are by no means necessary:

  • Start the day with an overview of what to expect
  • End the day with a chat about what happened
  • Write about it here on my blog

Sign Me Up

If this sounds interesting to you, drop me a line at shadowing@colinwilliams.name. If you don’t think your company would be interested, I’d be just as happy shadowing you on an open source project.