Mike Knepper

First Steps in Footprints

June 18, 2014

This week I joined the Footprints team. Footprints is an internal application 8th Light uses to track applicants from our website to our apprenticeship program. I’ll be working on this team for the next several weeks, and will surely have several blog posts related to the journey, beginning with this one.


We work exclusively in pairs on Footprints. This is my best opportunity so far at 8th Light to pair program. Until now, most of my “pairing” sessions have been more like code reviews, and/or the pair members have been skewed in some way. I might pair with a student apprentice on a kata, for example, and already know how to complete it but pace myself so as not to push my partner too quickly for them to learn. In a mirrored situation, I may pair with a craftsman and feel like I’m slowing him or her down, struggling to understand what’s going on quickly enough. It is important for me to note that these two situations are still extremely valuable. Teaching requires a high level of both technical knowledge and empathy, and it often involves approaching problem from a new perspective; the teacher often learns as much as the student, if not more. As the teacher I must maintain a sense of humility and openness to learning, and as the student I must be confident in my ability to provide value despite a large experience gap. At 8th Light, I am fortunate to have many opportunities to be in both roles.

There are several unique and great aspects to pairing on Footprints with other residents, though. We are at nearly the same knowledge level, we are equally responsible for the project, and we are tackling a problem that is new and challenging to each of us. This is a great opportunity for accelerated learning, the productivity level is especially high, and quite simply, it’s fun!


This is my first experience entering an already-robust code base as opposed to starting from scratch. The development on Footprints began several months ago, and the app has been in live, production use for quite a while. It’s also significantly larger than my earlier 8th Light projects, partly due to the fact that it is built on Rails. Fortunately I had done quite a bit of freelance and contract work in Rails before joining 8th Light, so I was at least familiar with the directory organization and high-level flow of the application. However, 8th Light doesn’t follow all the Rails conventions or “Rails Way” of doing things (surely a topic for another post), so getting acclimated with everything going on in Footprints has been approachable but still challenging. This is excellent preparation for what it will be like as a craftsman–8th Light is a consultancy, after all, and as such we need to be able to adapt to foreign contexts and begin providing value as quickly as possible.

Stepping forward

In all, I’m very excited to be working on Footprints for the next few weeks. It’s great to be back in Ruby after weeks of Java (and Clojure before that–Ruby, it’s been so long!), I’m extremely interested in seeing an 8th Light approach to Rails, I’m honored and humbled to be working with such smart co-workers, and I’m proud to be contributing to an application that provides tangible value in the real world. Onward!