One of my great achievements this year was the successful completion of a four night, five day hike along the Knobstone Trail in southern Indiana. Preparing for the trip involved lots of research, cross-training, and test camps. On one of those test trips I found myself caught in a flash flood without my bearings, and the experience inspired me to create my own app to track my progress along the trail.
With two weeks left before the big trip, I got to work, pouring dozens of hours into the project. There were moments where I questioned whether I was just wasting my time, especially when I had more important things to do (at least they seemed more important). “Any normal person would just use something like AllTrails”, I thought. But I was having so much fun. It brought out a kind of enthusiasm I hadn’t experienced in a long time. Building and using it was almost as enjoyable as the excursion itself.
Sure, AllTrails or some other existing app would have done the job, but there’s a different quality that comes with using something you’ve crafted yourself. It’s a special kind of relationship that gives back as much as you give to it. In exchange for my sweat equity I earned a kind of fulfillment. Reflecting back on my experience I have come to believe that, more generally, building your own tools can be a path to fulfillment.
There’s always a little bit of room for creativity in our day jobs but building our own solutions gives us full creative autonomy. At work we’re encouraged to be efficient and to think about how our output is received and used by others. That strips away our individuality to some extent. Not that there’s anything wrong with that. How else would we collaborate productively? But a sovereign creative outlet serves as an important counterbalance. In building for ourselves, we can create from our own “inner culture” using our own methods and workflows, free to play and experiment.
Exercising creativity is empowering. When we create something from nothing, we are tapping into potential. It reveals not only the potential within the problem space the tool serves, but also the potential we have to realize it. And since all knowledge is self-knowledge, the two go hand in hand.
To put it in psychological terms, it’s a way of entering into a flow state. Mihaly Csikszentmihályi, one of the pioneers of research into flow describes it as the “optimal experience” which leads to a sense of life satisfaction.
When I first started coding it was purely for fun. As I built a career around it some of the joy (if not most of it) became lost in the tedium of the day-to-day responsibilities. But there was something about integrating these two different hobbies (coding and backpacking) that reinvigorated me. I suspect that for folks who can relate, they might find a path back to the joy of coding by combining it with a completely separate hobby. I found a similar sense of enjoyment during the pandemic, building a nutrition and fitness tracking app using Google Sheets and Google Apps Script.
When you think of an artist, the image that comes to mind might be of a painter standing at an easel or of a musician with their instrument in hand, but creativity is much more than that. As developers, our instrument can be code and the art whatever we like to create with it. We can reclaim our joy and find fulfillment by building more of what we want, exactly how we want, and for no other reason than our own enjoyment.
- ^ I wrote in detail about my experience being caught in a valley during this flash flood, and the larger lesson I learned on paying attention over at Striking Contrast.
- ^ And if we're talking about Fulfillment with a capital F, there's no way it can be found in complete solitude. We are social creatures and have a biological need for connection with others. When we share our creative outputs with others, that brings even more life to it.