You cannot be a senior engineer if you haven't spent at least 3 years on one product. This is a hill I will die on.
Yes, early career advancement promotes job hopping. The quicker you can broaden your experience and see how different companies work, the better. Nice pay bump with every hop too.
But that approach hits a wall.
Later career advancement promotes depth. You need to be seen as an expert. The person who can come in and teach us how to do X.
When a middle manager is hiring, they need hands. People who can do the work in a workmanlike manner. The manager will tell you what to do.
When a business owner is hiring, they need brains. People who have been there done that, can own the outcome, and tell their boss/client what to do.
The only way to get there is time. Because software engineering is programming over time.
Why 3 years? That's about how long it takes to experience the consequences of your own decisions. For your beautiful ideas to turn into that awful crap you have to maintain.
And it doesn't work without skin in the game. If your ideas aren't running in production making real money, you're just navel gazing.
Don’t tell me what’s the best tech, show me what you run in prod.
— Swizec Teller (@Swizec) December 7, 2022
Without the business part, you're missing the most important part of engineering – constraints. It doesn't matter what's your best idea, show me what worked when customers were banging down your door, running afoul of your beautiful construction, and you had 5 other things to get done that week.
Domain modeling not so easy when users insist on putting triangles through a square hole is it? I love that meme
You can't get this experience without feeling the pain of change. Yes you can learn lots by jumping into an old codebase and maintaining it. Yes plenty to learn by seeing how different products approach similar problems.
But it's the awful grinding pain of reality bending your code to its will over time that's the real teacher.
It's easy to build a beautiful greenfield project. It's even easy to come in like a wrecking ball and say "wow everyone before me was a dumbass this project is a mess".
The hard part is keeping your code beautiful after years of wear and tear. The changing requirements, the scope creep, the flux in user expectations. That's the true art of software engineering – adapting your code over time.
If you can do that, I trust that you're senior.
Cheers,
~Swizec
PS: the most dangerous engineers have 5 years of experience. All the knowledge and chutzpah, none of the wisdom.
Continue reading about Depth takes time
Semantically similar articles hand-picked by GPT-4
- How many years to senior engineer?
- More on how many years to senior
- How to grow as a senior engineer or why I got a new job
- I'm a different engineer than I was 3 years ago
- 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 ❤️