Woodworking made me a better developer


Woodworking has been one of my passions since 2013. 99% of what I do is with hand tools - dimensioning wood, planing it smooth, joinery, everything. Some people think it is crazy, but I truly believe it has made me a better developer.

It has caused me to slow down

The choices I make are more deliberate. I stop to think more. I make sure what I am doing is elegant, extensible, and testable. The result is that I spend less time trying to build something and more time actually building it.

I'm not saying I write perfect code (I should tell you about some of the bugs I have caused!) but I understand the code more and find it easier to pinpoint a problem when found.

I pay more attention to the details

Consistency is a sign of a good, clean code base. If you aren't paying attention to the structure and style of code, then the result is a messy project.

Nothing screams "legacy" more than seeing several different code styles intermixed. Unless you have seen it, you might not understand, but the code feels messy, unkempt, and buggy. It doesn't mean it is - it just comes across like that.

Looking at the complete picture

Woodworking is a 3Dimensional space. You need to know how components are going to move and assemble. Being able to take a part and understand how it fits into the whole gives you a feeling of freedom. Once you can do that, then you are able to make changes as you go and be confident of the result.

Recognizing mistakes early

This dovetails with the previous one. "Fail early and often" is a phrase I hear a lot, but recognizing when something is going to fail is even more important. Nobody wants to spend the time solving an issue only to find out it won't work or causes another problem upstream.

Recognize not only when something has failed, but will fail. That will ultimately make you a better developer.