The best skill you can learn is ownership.
The best skill you can learn as an engineer is ownership.
β Swizec Teller (@Swizec) June 30, 2021
Take the task and crush that thing. All the way.
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.
You know what makes a senior engineer stand out in interviews?
β Swizec Teller (@Swizec) August 27, 2021
No it's not their sideprojects or their leetcode skills. Not even past experience, every senior has experience.
it's knowing how and when to ask for helphttps://t.co/6jexjgCGH3
The Senior Minset email crash course
Get a free chapter from the Senior Engineer Mindset book and a sample audiobook chapter, followed by a Senior Mindset 101 email course.
You'll get insights to apply at your work right away.
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.
The second best skill you can learn is to let go.
β Swizec Teller (@Swizec) June 30, 2021
Let others write code their own way. Itβs gonna be fine.
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
Continue reading about How to own projects like a senior engineer
Semantically similar articles hand-picked by GPT-4
- Be their shit umbrella
- How to succeed as a lead engineer βΒ tactics and mindsets from practice
- Own your career like an expert
- Why senior engineers get nothing done
- What makes you a senior software engineer anyway?
Become a *true* Senior Engineer
Get promoted, earn a bigger salary, work for top companies
Getting that senior title is easy. Just stick around. Being a true senior takes a new way of thinking. Do you have it?
The Senior Minset email crash course
Get a free chapter from the Senior Engineer Mindset book and a sample audiobook chapter, followed by a Senior Mindset 101 email course.
You'll get insights to apply at your work right away.
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 β€οΈ