Swizec Teller - a geek with a hatswizec.com

Senior Mindset Book

Get promoted, earn a bigger salary, work for top companies

Senior Engineer Mindset cover
Learn more

    A great engineer knows their tools

    [name|Friend], earlier in my career when I thought I was god's gift to engineering but wasn't, I failed one of those stupid interview questions that "have nothing to do with the work".

    What would you change about JavaScript?

    Ugh what a dumb question what does that have to do with placing divs on a page and solving business problems who does this interviewer think he is??? JavaScript is perfect and amazing, if you struggle with any of its fiddly details you're obviously just not smart enough yet.

    And you know what [name|], the interviewer got exactly what he was looking for from my answer 👉 pass, not senior.

    Opinions expose expertise

    "What would you change about X" is a brilliant question because the more time you spend with a tool, the more sharp edges you uncover.

    At the time my experience was as a freelancer. You parachute into a project, solve a gnarly problem or two, and move on.

    You don't get exposed to the real engineering challenges – programming over time – and you don't find JavaScript's sharpest edges. Its challenges for collaboration, unintuitive scoping rules, limited standard library, and all the missing features we love from other languages.

    When ES6 happened my mind was blown. All these amazing details I never realized were missing! 🤯

    The more big production projects I build with a team, the more answers I have for a wide variety of "What sucks about X" questions. Especially JavaScript. Ask me now and I might never stop talking.

    But I had to earn that knowledge. Find the battle scars.

    The sports analogy

    You'll never hear an athlete say "Pfft, they should just know how good I am, ~~interviews~~ tests are stupid!". Competition is what they're all about.

    But even athletes experience this evolution of insight. The longer they train, the more minute details they can talk about.

    When my sister started track in high school, she could run. A few months later she could explain the mechanics of a good gait that doesn't waste energy. A few years later she could talk for an hour about the benefits of different brands of spikes for her shoes.

    Yep, this stuff has brands.

    Track running shoe spikes
    Track running shoe spikes

    In Open: An Autobiography (great book), Andre Agassi talks about the difference between playing on clay vs. grass vs. a hard court.

    Who cares right? You show up, hit the ball, win the game. Same rules, same balls, same tennis rackets, same opponents even.

    You're wrong [name|]. Agassi says the court surface changes tennis. Makes it a new game almost. Different strategy, different training, different technique. All different.

    Hell, Agassi is such a tennis expert that his autobiography opens with an anecdote about rackets. They're packed in the wrong order. It's throwing him off. And he can't get used to the modern kind either. They're too heavy, or too stiff, or the strings are all wrong ... something.

    They're all rackets to me 🤷‍♀️

    Start with shoelaces

    You may think none of this matters.

    Athletes are divas, Mayweather and McGregor fussing over 8oz or 10oz gloves is clickbait drama, and asking engineers about tools is stupid. You're hired to solve problems, not opinionate about the tools 🙄

    But the tools are there to serve you [name|]. They should meld into the background. Become automatic. Not distract you.

    Like Coach Wooden, a 10-time basketball champion used to say – poorly tied shoes lead to blisters, blisters lead to missed games, and missed games lose championships.

    A solid foundation is gold

    Tools aren't just "tools". Every concept is a tool.

    In boxing, magic happens when you go from thinking about how to throw a punch, to thinking about the game. When you're free to strategize because the mechanics of punching and stepping are automatic.

    Same with coding.

    How can you focus on the code, if you have to think about typing? How can you focus on the architecture, if you have to think about loops and functions? How can you focus on domain modeling, if you have to think about data structures? How can you focus on the problem, if you have to think about code formatting?

    Each concept you automatize frees up your brain. Unlocks the next level of insight.

    Your answer to "What sucks about X" tells people where you're at [name|my friend] ✌️

    Cheers,
    ~Swizec

    Published on September 9th, 2021 in Mindset, Learning, SeniorMindset, Skills

    Did you enjoy this article?

    Continue reading about A great engineer knows their tools

    Semantically similar articles hand-picked by GPT-4

    Senior Mindset Book

    Get promoted, earn a bigger salary, work for top companies

    Learn more

    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

    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 ❤️