Traditional engineering levels were about skill progression. I think this has changed. Everyone now is a mini staff engineer.
Had an interesting conversation with Clara Shih and Chip Huyen yesterday about engineer hiring, early career especially. Will share the podcast when it's out.
The conversation helped me realize that hiring has changed and I didn't even notice. Been using a whole new philosophy and never verbalized it.
Traditional engineering ladder
You start as an entry-level engineer. Your task is to write code and ask questions. Coachability is key. You're likely going to work under the wing of a senior who is mildly annoyed to have you and thinks they could work faster on their own. But you do the annoying things they find boring so it's okay.
You then become a mid-level engineer. You build features and begin to ask product and business questions. What if we built things a different way that's easier? You become opinionated about code structure and have a few scars to show. You can increasingly be trusted to write good code.
You then graduate to a senior. This is the terminal level where you can stay forever. Your job is to train entry-level engineers, keep the mid-levels mostly on track, and work with Product to gently push back on bad ideas and aggressive timeliness. You begin to own systems and have responsibility to the business.
After that you can go into staff+ engineering where the job changes. You become a lead or a deep subject matter expert or some other kind of non-people mid-level manager. At most companies this is a director-level position except you're an IC. The job becomes building systems for seniors, mid-levels, and entry-level engineers to thrive in. You talk to business stakeholders, push back on product, and scour the company for problems that need solving. You might own a critical system, loosely own an OKR or two, or have a charter like "Get our company to do X".
Beyond senior the job is messy and confusing.
The new ladder
Hiring now is ... confusing. I have people with 15 years of experience applying for the same jobs as people with 2 years and less. We hire anyone who passes the bar, but we adjust our level of expectation.
The leveling happens in interviews. Mostly system design and behavioral. Coding is a baseline prerequisite.
Here's how it works:
You start as an entry-level engineer. You own a limited scope. A manager takes you under their wing and gives you features to build or small low-risk products to own. They do much of the scoping and problem definition, you own the implementation, and production bugs are yours to fix. You join stakeholder meetings and ask questions, but your manager leads.
You then graduate to a mid-level engineer. You get to own features start to finish. Your manager (or product) finds a problem that needs solving, writes the concept of a plan, and you are free to execute. They point you at a few stakeholders who experience the problem, you talk to those folks, and together with your manager or product person you refine the solution. A lot of your job is iterating to figure out what the solution looks like. Sometimes you surface new problems and your manager helps prioritize.
You then become a senior. You now own a product area as your primary focus and a few product areas in maintenance mode. These are things you've built in the past that have reached maturity. Your job is to talk to users of your products and work with them to find improvements, figure out any sharp edges, and feed project ideas back up to your manager. Talking to your customers often surfaces whole new product ideas. Mostly you manage your own backlog with some guidance to align with leadership priorities.
Levels beyond that, staff+ and above, pile on more of the same. More stakeholders, more bigger product areas, an entire platform or two. Engineering progression isn't about the type of work you do, it's about the level of responsibility and ownership you hold.
Cheers,
~Swizec
Continue reading about Engineering levels aren't about skill anymore
Semantically similar articles hand-picked by GPT-4
- What makes a senior engineer
- Interviewing tips for experienced engineers
- What makes you a senior software engineer anyway?
- How to grow as a senior engineer or why I got a new job
- Depth takes time
Scaling Fast book free preview
Enter your email to receive a sample chapter of Scaling Fast: Software Engineering Through the Hockeystick and learn how to navigate hypergrowth without burning out your team.
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 ❤️

