The smell of fresh pine sawdust filled the air, with more floating up as I sanded the last rough corner of the stool. My toddler was happily sanding her own block off to the side.

Woodworking was a new hobby I'd picked up. My old ones, coding, reading, writing, had kept me stuck to my laptop, holed up by myself. Not very toddler friendly.

A surprise gift laid the seeds of an idea. As a boy, the best summer days were when my dad and I would transform scratch wood into bird houses, planes, and eventually even rube goldberg devices. It was time to rekindle the flame.

A few youtube videos and a HomeDepot run later, it was time to pause my side coding projects and foray into a new world.

Except it wasn't that different from the old one!

Woodworking felt strangely familiar. Even its dopamine hits triggered the same spots that programming would.

Turns out, the best parts of woodworking aren't actually that different from software engineering:

1. You build your own tools

The best software engineering moments are when you building your own tools. That's work with purpose.

Woodworkers do it too. They call such tools "jigs".  Some jigs might be built to meet niche needs (like drilling straight holes). Others, just to save money.

As always, you have to decide what's the value of your engineering time.

2. Too many tools

There are mind boggling varieties of woodworking tools out there, each optimized for a slightly different situation. Want to saw wood with the grain? Against the grain? Need a quick but ugly cut? Need a smooth cut and don't mind it taking longer? What about curved cuts? And that's just for saws!

Each one is optimized for a specific use case, but unless you have an infinite budget you'll need to decide which ones are actually required for what you want to do.

Anyone who's had to choose a storage layer on AWS knows what it's like to understand your tools, figure out what they're best for, and which one most closely matches your needs.

3. Finite (non-monetary) Budget

Money isn't the only thing you budget.

Any limited resource needs to carefully doled out. With software, the budgets might cover hardware constraints (CPU/memory), networking bandwidth, latency targets, engineering man-hours, etc.

Turns out, there's one inflexible budget with woodworking: Physical space!

There's only so much room in my garage (even after I cleaned it). Whatever tools I get have to fit in there along with my work bench. I have to be really picky about what I spend my storage budget on, and some beloved items, like a razor sharp table saw, are simply not possible.

4. Design first, build later

In both worlds, sketching out your designs before building pays huge dividends. You get a clearer picture of what you'll make and you figure out how the different parts will interact.

Otherwise, you might have to throw away days worth of work because you took a slightly wrong turn.

5. Waiting


Except with woodworking, you yell "The glue's drying!"

On the plus side, it lets you work on multiple projects at once.

6. You have Users!

Once my wife learned of my plans, the requests for custom pieces started rolling in.  Knowing that whatever I build has an eager recipient awaiting it is rocket fuel for motivation.

And since it's my wife asking for it, it's easier to justify buying the tools I "need".

One big difference

With woodworking you actually get to hold your creations.


Woodworking has the same highs as software engineering (and even more if you spend enough time around glue).

You get the same fast feedback loops, close interaction with your users, while avoiding some of the more tedious aspects of software engineering. Plus you're never on-call.

I can see why these guys gave up software.

That's not my path though, programming is too near to my heart and my day job lets me do more than just write code.

But it does help answer a question I've asked myself a lot:

What would I do if I was born a hundred years ago, before computers were invented?

And the answer is now clear:

Find something to build.

I write a  newsletter sharing insights on how to leverage lessons from across industries to become a better software engineer. Sign up below to get them in your inbox!

Want insights every day instead? Follow me on twitter