Hey there, friend.
This week I want to talk about adopting a hacker mindset:
- Why laziness is a good thing
- Delivering more value (with less effort)
- And how to start solving problems like a hacker
Work hard, not smart (or else!)
People used to tell me that I took too many short-cuts.
“You can’t skip to the end.”
“Read all the directions first.”
“That’s not the right way to get the answer.”
They told me I was being lazy. Only diligent hard work would unlock success in the future. I had to follow the rules.
But then I discovered software development.
Turns out being lazy makes you a great Software Developer
But I don’t think of it as being lazy anymore.
Instead I think of it as a mentality or mindset. It’s a different way of approaching problem solving. One that involves doing things the “wrong” way.
A Hacker mindset.
What is a Hacker Mindset?
Hackers don’t care how they accomplish their goal.
They’ll settle for:
- Social engineering
- Exploiting a vulnerability
- Brute-forcing a weak password
- And anything else that works
That’s because with a Hacker Mindset, how you get to your destination is unimportant.
Cap n’ Crunch and free phone calls
The whistle in the box of Cap n’ Crunch wasn’t supposed to turn you into a phone phreak.
But Joe Engressia (aka Joybubbles) recognized the tone. And John Draper (aka Captain Crunch) knew that this tone could exploit a vulnerability. Which meant anyone with access to the toy whistle in a box of Cap n’ Crunch could place long distance calls. It didn’t matter that you didn’t know a blue box from a mail box. You could exploit the same vulnerability.
Different journey, same destination.
Adopt the mindset, not the ethics
I’m not advocating for unethical, immoral, or illegal ways of developing software.
Instead, I’m advocating for delivering more value to the business. Just doing it with less initial effort. When there’s a potential shortcut, it’s irresponsible to NOT explore it.
You have to actively explore opportunities to do less.
Mindset #1 – Copy, steal, and borrow when possible
Solve problems using a known and working solution:
- Use a pre-existing library
- Copy and paste from stack overflow
- Follow an existing pattern that’s already solving your problem
Practical example: Don’t write your own authentication system, use one that already exists, has been tested, and just works.
Mindset #2 – Use tools for ‘unintended’ purposes
Solve problems by using tools in uncommon ways:
- Leverage existing protocols before adopting new ones
- Opt for simple alternatives over complex best-practices
- Re-use a familiar tool before adding a new one
Practical example: Instead of building a reporting system, use a cronjob to write data to a CSV file and email it.
Mindset #3 – Try things that seem like they won’t work
Solve problems by exploring solutions that “shouldn’t” work:
- Don’t solve problems you assume to exist
- Ignore “what-if” future scenarios
- Avoid automating tasks that happen infrequently or take little time
Practical example: Before you implement full-text search, see if the users are already using CTRL-F to find records on the page and stick with that.
But know when to buckle down and work hard
This is the hardest part of adopting a Hacker Mindset.
You might go for weeks solving easy problems and earning quick wins. But eventually you’ll hit a wall. That’s because there are some problems that can’t be hacked.
At least not until you solve them a few times.
Some examples are:
- Risk avoidance
- Scaling problems
- Contractual obligations
- Regulatory requirements
Having a Hacker Mindset does not mean being a hack
There’s a fine line between applying a clever short cut and being irresponsible.
It takes exploring that boundary over time to know when to pull back. And you’ll get burned a few times when laziness blows up in your face. That’s because it’s hard to anticipate when your short-cut becomes a liability.
So, here are some signs you’re being irresponsible with a short-cut:
- Violates your team’s working agreements
- Has a heavy maintenance burden on your team
- Won’t support existing volumes of data or required throughput
- Requires new (and time consuming) workflows to adopt and use
- Or anything else that will keep you up at night
Don’t live life on hard-mode
Make your life easier.
Adopt a hacker mindset and start finding opportunities to get more done with less. You don’t need to prove to everyone that you can do things the hard way. Because at the end of the day, you’re judged on results.
And hackers know how to get results.