Swizec Teller - a geek with a hatswizec.com

    A mental framework that helps you code faster

    What slows you down the most when you're coding or doing software engineering?

    I think underneath anything you just said lies your decision making speed. How fast can you make a decision, commit to a direction (for now), and keep moving?

    That's what we talked about in this week's Senior Mindset Mastermind.

    Thinking in bets

    The book Thinking in Bets by Annie Duke changed my whole approach. Great read.

    Her thesis is that:

    1. You will never have perfect information
    2. You need to decide anyway
    3. No single hand is the whole game

    She learned this while becoming a poker champion as a research project. Started from zero, got into it, dominated tournaments for a couple years.

    4 quadrants of decisions

    Coding is not quite like poker, but it isn't far off either. Nice thing about software is how easy it is to change your mind later when you learn more.

    If civil engineers can pivot a building 90°, you can refactor your codebase [name|].

    The mental framework I use when faced with a decision is to classify it in 4 quadrants along the impact/risk axes.

    4 quadrants of decisions
    4 quadrants of decisions

    low impact low risk

    you might get it wrong and you can fix it fast

    An example is naming a variable, function, or class. Doesn't matter. Pick something, anything, and keep coding. When you know more, use your IDE's global rename function to choose a better name.

    Nearly all localized decisions with a small blast radius fall into this camp. Like choosing a looping construct.

    low impact high risk

    you're likely to get it wrong but it's easy to fix

    An example is designing an API or data modeling in a new domain. You will get it wrong the first time. Or the first couple of times.

    The best approach is to pick something and try it out. See how it feels. Iterate until it feels right.

    Pontificating on a whiteboard looking for perfection is a great way to waste a lot of time, feel productive, and get it wrong.

    high impact low risk

    you're unlikely to get it wrong and if you do, bad things happen

    An example is deploying tested code to production or choosing a popular framework with wide community support.

    The approach to use here are rules of thumb – don't deploy before going on vacation – and expert intuition. Once you've done something a lot, your gut knows best.

    Take the bet when you're pretty certain. De-risk.

    high impact high risk

    you can be catastrophically wrong and it's hard to fix

    An example here is choosing a 3rd party vendor for your project or a framework that's new and exciting. Once you're locked in and you realize it's wrong, it's hard to change your mind.

    Take these decisions slowly. Make contingency plans. Design check-ins into your project. Have a deadline to make the decision.

    A deadline helps you decide when you're about 80% sure.

    Pre-decide when you're going to bail. When situation X, Y, Z arises, we bail. You're going to be too fond of the work when that time comes to think straight.

    Don't judge decisions by their outcomes

    Just because the outcome was bad, doesn't mean your decision was bad. Just because the outcome was good, doesn't mean your decision was bad.

    I sold 2 bitcoin for $1200 in 2013. Bad decision?

    Nope. Bitcoin crashed right after and took another 5 years to reach the same value. And I needed the rent money.

    If you're interested in these kinds of conversations, consider joining the Senior Mindset Mastermind. We meet every 2 weeks


    Did you enjoy this article?

    Published on December 16th, 2021 in Uncategorized,

    Want to become a true senior engineer?

    Getting that senior title is easy. Just stick around. Being a true senior takes a new way of thinking. Do you have it?

    Leave your email and get the Senior Mindset series - a series of curated essays on the mindset of a senior software engineer. What it takes to get there, what should you do when you're there, how to change the way you think.

    The Senior Mindset series

    Get a series of curated essays on the mindset of a senior software engineer. What it takes to get there, what should you do when you're there, how to change the way you think.

    it describes my days in a way I have not read before.

    This was a very enlightening article about being a senior engineer.

    Join 15,883+ engineers learning lessons from my "raw and honest from the heart" emails.

    4.5 stars average rating

    Have a burning question that you think I can answer? Hit me up on twitter and I'll do my best.

    Who am I and who do I help? I'm Swizec Teller and I turn coders into engineers with "Raw and honest from the heart!" writing. No bullshit. Real insights into the career and skills of a modern software engineer.

    Want to become a true senior engineer? Take ownership, have autonomy, and be a force multiplier on your team. The Senior Engineer Mindset ebook can help 👉 swizec.com/senior-mindset. These are the shifts in mindset that unlocked my career.

    Curious about Serverless and the modern backend? Check out Serverless Handbook, for frontend engineers 👉 ServerlessHandbook.dev

    Want to Stop copy pasting D3 examples and create data visualizations of your own? Learn how to build scalable dataviz React components your whole team can understand with React for Data Visualization

    Want to get my best emails on JavaScript, React, Serverless, Fullstack Web, or Indie Hacking? Check out swizec.com/collections

    Want to brush up on modern JavaScript syntax? Check out my interactive cheatsheet: es6cheatsheet.com

    Did someone amazing share this letter with you? Wonderful! You can sign up for my weekly letters for software engineers on their path to greatness, here: swizec.com/blog

    Want to brush up on your modern JavaScript syntax? Check out my interactive cheatsheet: es6cheatsheet.com

    By the way, just in case no one has told you it yet today: I love and appreciate you for who you are ❤️

    Created by Swizec with ❤️