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

    How to own projects like a senior engineer

    The best skill you can learn is ownership.

    Ownership means that when YOU grab the project, it will get done. No matter what.

    Unless it's no longer a priority. Then you drop it like it's hot. This is harder than it looks.

    Overcoming obstacles

    At its core, ownership is about overcoming obstacles.

    How good are you on your worst day? When the code hates you, production is on fire, user story makes no sense, and half your day is spent helping others?

    That's when ownership shines.

    You find time with your Product Manager – PM – to clarify the story, you work around the bad code, make time to fix it, and add "fixme" stories to the backlog. When that fails, you find people with more context and ask questions.

    You can google for library questions. You have to ask for codebase questions.

    Excuses and reasons

    Steve Jobs liked to share a great story about ownership:

    When your office isn't cleaned, you ask the janitor why.

    "Office was locked and there's no key"

    And that's fine. That's a good excuse. You can't clean an office without the keys.

    But when you're a certain level, that's no longer fine. Why didn't you go find the key? Why isn't there a backup? If all else fails, why didn't you pick the lock?

    An excuse is when you say "I couldn't do it because of X". A reason is when you say "It was delayed because X. When I tried Y and Z that didn't work, I'm trying W next unless you have a better idea"

    Your job is to ensure that office is cleaned. Figure it out.

    "it wasn't in the story"

    As an engineer, your job is to solve problems, not to mindlessly fulfill requirements like a drone.

    Own the process. The whole process. Be the project manager you want to see in the world.

    You get the project. You read the spec. You ask questions.

    Many questions. Until you are sure you understand both the spec and the spirit of the spec.

    When your PM says "Send user a message at 9am", she doesn't know to also ask:

    • What happens in different timezones?
    • What if our server is down at 9am?
    • What if the messaging service is down?
    • What if the database was corrupted?
    • What if the cronjob runs at 9:01am?
    • What if it runs at 8:54am?
    • What if we have to send 1000 messages and that blows through our rate limit?
    • What if sending 1 message out of 100 fails?
    • What if we want to analyze sends later?

    Finding those hidden requirements is your job my friend. You're the expert and distributed systems are inherently flaky πŸ˜‰

    When you ask, the PM might say "Not a business priority right now, thanks for asking".

    Which is a lot better than getting a text on your Bahamas vacation at 10am saying "Hey our business is down because we tried to send 10,000 messages in 1 second and it locked the database, what the fuck?"

    And she's not gonna ask that your React component follows basic accessibility guidelines either. That's on you.

    Own the outcome, not the work

    The second best skill you can learn is to let go.

    Just because you own the project, doesn't mean you have to do it alone. Get help!

    Notice what I said earlier:

    Your job is to ensure that office is cleaned.

    Ensure, not clean.

    You take the responsibility. You don't have to take the work. Doing the work might even be a bad use of your time!

    Do you have to build that component you've built a thousand times or can someone else do it with your guidance while you focus on bigger things?

    When shit hits the fan, opt for speed. When there's time, train others.

    Surgical teams

    I like the surgical team analogy.

    You're the lead engineer for this project and the rest of your team is there to help.

    You own the outcome.

    If the patient dies, your fault. If the patient lives, your fault. If there's complications, your fault. If you publish a report, your name first.

    But it's a team effort.

    Nurses prep the patient, an anesthesiologist administers drugs, a team preps the tools, an assistant hands you the right thing at the right time, a trainee opens the patient up and closes them back, ...

    You planned it all. From start to finish.

    Described the tools you'll need, the team, the procedure, talked with the patient, managed risk, delegated tasks, helped when there's questions.

    And then you do the hard part. The critical part. The part that needs an expert. The bit only you can do.

    Be the expert my friend. Own the outcome.

    Cheers,
    ~Swizec

    Published on July 2nd, 2021 in Opinions, Leadership, Mindset, SeniorMindset

    Did you enjoy this article?

    Continue reading about How to own projects like a senior engineer

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