Lock picking can make you a better engineer

Learning to use a lock pick changes the way you see security and the way you think about code. It's a great mental challenge and will help you build stronger, more secure systems.

My best friend in college ordered a set of lock picks online. When they arrived, we spent the next week learning how to use them based on a horribly documented guide that came in the package.

Lucky for us, we figured out how to pick the locks in our dorm rooms. It was a fun challenge.

Weeks later, another friend forgot his goldfish in a mad rush to catch a ride to visit home. He messaged us in a panic and asked us to rescue his pet, offering any of his DVDs as payment.

I’ve since lost the DVD I took, but I’ll never forget his face when he came back to see his fish alive.

He’d not been around when we’d learned to use the lock picks. He had expected us to call the resident assistant to get in – not to let ourselves into his room. That the lock on his door was little more than an inconvenience was quite a surprise.

A minor inconvenience

Last summer I was out doing yard work. My wife and daughter came to help me and, being the helpful child she is, my daughter kindly locked the door for us.

The problem was that we were all outside and none of us had our keys.

An hour’s wait later, a helpful locksmith arrived and picked his way into the garage. He and I then exchanged lock pick stories, and I showed him my collection of picks as well. It was quite enjoyable to talk about picking with an expert, and validated my hobby.

The experience also terrified my family as they realized the locks we rely on for security are little more than a minor inconvenience to an expert.

To someone without a key they keep the door shut. To an expert with lock picks, a locked door is a few seconds delay before they enter. It’s not the lock that keeps them out – it’s their sense of morality.

Make the lock do what you want

Starting in software development can be daunting. Which language do you pick? Which frameworks? What libraries do you need to master before you can ship a project?

These questions are important, but they miss the point. You need to start somewhere, so start with the basics – how does the software work and how do you make it do what you want.

To use a lock pick, you need to understand how the tumblers in the lock work and how to make them do what you want. It takes practice, but once you begin to master the skill you never look at a lock – or the door it protects – the same way again.

Understanding how a platform works removes the magic and helps you see the fundamental building blocks upon which it’s built. This, in turn, allows you to build better and more complex systems beyond it.

You don’t need to be an expert on day one – either in software or lock picking. Instead, pick a smaller challenge and start there. Can I pick open this padlock? Can I fetch data from this API? Then, build on that skill and move on to larger, more complicated challenges.