Engineering progression for humans
As engineers it can be unclear where we’re heading, especially when we’re heads down writing code all the time. It can be hard to think even a few months ahead. What does an engineering career in a larger organisation look like? What even is a staff engineer? How long should you stay at the same company?
Whether you're new to the industry or several years in, there's a good chance you've identified with at least one of these statements at some point:
- It seems like there’s a dozen different ways you could progress and you have no idea what’s right for you
- There isn’t anyone in your immediate organisation who has a role you see yourself going into
- You don’t really know what you want from your career
This is everything I've learned about progression in larger organisations, with some thoughts and opinions on the way. If you're not working in a capital-T capital-C Tech Company, this might not be so applicable to your situation, but never say never!
This isn't going to be a step-by-step guide to how to reach each level of the engineering career path. For one thing, it varies wildly from company to company, so my advice might not be applicable where you work. Instead, by looking at what these levels involve, you might be able to identify where you need more experience or where you're already well on your way.
Know what motivates you
Understanding how you want to progress in your engineering career depends on what motivates you.
It’s completely okay to be motivated by money, for example. Money can be exchanged for goods and services. Houses are expensive. Families are expensive. Dogs are expensive. Maybe you’re saving for your future, or supporting someone back home, or maybe you like having nice things.
Or maybe you want to be in a position where you can influence teams at a higher level. You have thoughts and opinions, and you like being able to help architect systems or decide on the best way forward.
Perhaps you want a role that lets you help others, and grow people. Watching them develop in their own careers thanks to your support. Helping teams achieve their goals and be productive.
You might need a change because your current role is negatively affecting your mental health. For me, mental health trumps everything, and there is no job that is worth doing at the expense of mental health. If it sucks, hit the bricks.
Maybe you want to do work, clock out, and focus on the other things in life. Like extreme ironing, or beekeeping.
You’ll probably fall into a few of these categories. I know I’m definitely motivated by helping people but also taking a high-level view and influencing things. And I have to say, I also like having money. But I've also been careful to choose jobs that allow me to protect my work-life balance.
Your career decisions should reflect what’s best for you. Not your company. Not anyone else. We spend 40 hours a week in our jobs, so it needs to be worth it.
Speaking of which:
Not everybody needs to (or wants to) progress
It's so easy to fall into the trap of thinking you have to follow the same path as everyone else. You could be forgiven for thinking careers are all about progression. But ultimately it's whatever you want it to be, and if you're happy where you are, that's the most important thing. Many folks out there will tell you that you don't have to have a Big Tech job to be a successful engineer, and you should listen to them. Engineering, software development, web design, whatever you want to call it: there are so many versions of this job and only you know which one suits you best.
The way up (or sideways. Or backwards.)
The first few stages of the engineering career path are relatively well-trodden. You come in at an entry-level or so-called “junior” position, you work your way up to a mid-level engineer – often just called “engineer” – and then you might go up to Senior. Here's one such example:
What each of these steps looks like depends on your organisation, but commonly Engineer I is like an intern or apprentice (what you might expect for someone with little to no background in engineering at all), Engineer II is what is often called "junior" (entry-level for someone with a qualification or a bit of training) and Engineer III is a mid-level position. Senior might just be one role, or split out into two levels.
It depends on where you work, but generally speaking there are no set timelines for this progression. Some folks progress faster than others, or have their start at different times in their life: sometimes you’ll work with a 22-year-old senior engineer and feel like you are turning into dust, sometimes you’ll meet folks in their 40s or 50s who are starting out as developers. It’s all good.
A note on promotions: many tech companies these days will only consider a promotion once you've shown that you're already working at the next level up. I don't especially like this, as I think it disadvantages people who aren't extroverted or highly visible in an organisation, and it kind of means you end up doing the job for a while before you get paid for it. In these kinds of organisations, progression is as much about playing the game as it is about doing a good job and being recognised for it. I'll write up another post about that soon.
I also know some bigger orgs have a kind of rule that you have to be in a role for X number of years before you can get promoted, and I particularly don’t agree with that approach because your tenure has no bearing on your ability. I'd agree that it takes time to build up the required experience for higher levels of jobs, but that amount of time differs from person to person and each individual case should be considered.
The first few stages of an engineer's career are a bit more well-defined; let's have a look at them.
Engineer I and II
As Engineer I, you're at the start of your career, learning and asking questions. Not that you won't be learning and asking questions for the rest of your career – you should definitely be doing that regardless of your experience. But you'll be getting to grips with the tools, with the practices, with how things work.
The kind of work you do at this stage should be very well-defined tasks that are curated for you by a more senior engineer as good things to get your teeth into and learn from. You might spend a lot of time pairing on tasks.
At level II, you've got the base knowledge down, you're a solid, trusted contributor to your team and beginning to design solutions on a smaller scale for problems your team is working on. You're more independent now, though you're probably still working with senior engineers to break down the problems and scope the work that you're doing.
Mid-level engineer / Engineer III
Now you're a lot more independent – a good individual contributor (IC). You're happy designing and implementing solutions, suggesting improvements to ways of working and engineering patterns, writing code with a good level of proficiency. You may also start to mentor less experienced engineers. You'll be leading mid-sized projects and are trusted to get the job done. Your PR reviews and pairing sessions help more junior engineers learn the ropes.
It’s totally legit to just stay here and hang out for however long you want. You don’t need to go for senior.
Senior engineers are experienced ICs who can lead projects or features that have a higher level of technical complexity. You'll be mentoring less experienced engineers, either through formal 1:1s or by leading by example through the code you ship and the feedback you leave on PRs. You'll get good at identifying opportunities for your team and how they relate to the wider goals of your organisation.
The more senior you get, the more ambiguity there is in what you’re working on, and the more high-level you start to operate. My work often finds me looking across teams and even across the organisation.
Senior engineers come in all shapes and sizes!
The senior engineer role isn't the same for everyone. I like how Monzo's engineering progression framework, er, frames it, and I've very much paraphrased here:
You might be a galaxy-brained domain expert, who knows the ins and outs of a particular area or system like the back of your hand. If there's a project involving this system, you're possibly leading it, but you're definitely advising on it.
Or you might be more of a "tech lead"-shaped senior engineer, focussing on enabling your team to build great quality software and fostering a great engineering culture. At Monzo this doesn’t translate to literally being tech lead of a team – it’s a hat you put on, and you might not be senior yet when you're tech-leading.
You can also sit somewhere in the middle, being a great individual contributor and leading projects, helping your team to do great things.
Senior to ???
What comes next?
So, for one thing, maybe you don’t go anywhere.
The long-tenured senior engineers on our teams are indispensable. They’re fountains of knowledge, they’ve seen it all, they are wise beyond their years. Every company needs some great senior engineers who are happy continuing to be great senior engineers. You may choose to reach senior, and stay there.
Senior to staff
If you want to continue down the IC path, generally it'll be to something like Staff Engineer. This is technically a leadership position, but it shouldn’t involve managing people.
What this role looks like varies massively across different organisations and even across different teams in the same organisation.
If you do decide to pursue further progression to Staff and above, this is where things start to get murky. It’s surprisingly not a very well-trodden path.
Thankfully, both Tanya Reilly and Will Larson have done lots of path-treading and word-writing about this very topic: Tanya’s book, The Staff Engineer’s Path, provides a great overview of what you might expect to be doing and what you need to excel in this role. Will Larson is the author of Staff Engineer and also runs the StaffEng website with a lot of helpful stories and guides to staff engineering across organisations.
Notably, he came up with Staff Engineer archetypes that nicely outline what this role might look like:
The Tech Lead guides the approach and execution of a particular team. They partner closely with a single manager, but sometimes they partner with two or three managers within a focused area. Some companies also have a Tech Lead Manager role, which is similar to the Tech Lead archetype but exists on the engineering manager ladder and includes people management responsibilities.
The Architect is responsible for the direction, quality, and approach within a critical area. They combine in-depth knowledge of technical constraints, user needs, and organization level leadership.
The Solver digs deep into arbitrarily complex problems and finds an appropriate path forward. Some focus on a given area for long periods. Others bounce from hotspot to hotspot as guided by organizational leadership.
The Right Hand extends an executive's attention, borrowing their scope and authority to operate particularly complex organizations. They provide additional leadership bandwidth to leaders of large-scale organizations.
I’m working on this path myself, recognising the areas I need to develop. My engineering director framed it as having muscles I need to develop and train to get to staff; for example, I know I’m very technically competent and have formed good relationships across the company, but I need to get better at managing my time and focus, and I'm gaining experience of tackling highly ambiguous problems.
This year we also had the inaugural StaffPlus conference from the same folks that run LeadDev. I found this a really great opportunity to absorb some really useful information for my own progression in a bigger organisation. (Shame about the eye-watering ticket price, though.)
Senior to engineering management
In tech companies these days it’s very common to have dedicated engineering managers (EMs) who look after a group or team of engineers, along with some other responsibilities. At Monzo our EMs also function as delivery leads, making sure the teams are unblocked and productive, and acting as envoys between product teams and leadership.
You might take a step sideways away from the hands-on engineering role, and become an engineering manager. It’s not a promotion as such, more of a role change; generally speaking engineers wanting to make the transition into engineering management will need to get to senior first, before moving laterally.
The most well-known guide in this area is The Manager’s Path by Camille Fournier. I read a good part of it myself some years ago when I was looking into becoming a tech lead, and it has some great advice on what makes an effective technical manager (and of course, how to get there).
I know plenty of engineers who have gone into engineering management and loved it; I also know a handful who have done it for a while and realised it wasn't for them and gone back to being an IC. It doesn't have to be a permanent choice.
Other potential sideways steps
I've outlined some very common paths for engineers, but there are other roles you might choose to explore in the world of engineering that are more of a sideways step, such as:
- Developer relations (devrel) – fostering relationships with the developers who use products, showing them the art of the possible, and building a community around that
- Sales engineering – combining technical expertise and people skills in a role that could see you travelling all over!
- Specialist consultancy roles e.g. accessibility consultancy – laser-focussing your skills in a certain area and helping companies to improve, or even taking on a full-time leadership position as head of your specialism.
(If you know of any others I've missed, do let me know, and I'll add them in.)
So, that's the engineer's path. But it's rare that people spend their entire careers in one company these days. Where might your career take you?
Cross-company career paths illustrated using tenuous playground metaphors
You might recognise these paths from your own career or those of the people around you. They're somewhat simplified for brevity.
The “traditional” career ladder model tended to be applied to people within one organisation. At a company I used to work at, it looked a bit like this:
It was a very old company, and people stayed for their whole careers. The more senior you got, the bigger the likelihood was you’d end up managing people. There wasn’t really an IC track in the way there is elsewhere.
With a long career in one place, you get great in-depth familiarity with systems and organisational patterns, and you become a trusted face in the company. Many companies offer bonuses and benefits for long service, like sabbaticals. And if you're happy there, that's great.
Do bear in mind that that tenure might come at a cost of not gaining experience of the outside world: you could end up with tunnel vision, only knowing how things are done where you work. As time goes by you might find yourself more resistant to change, because it’s not the way you’ve always done things (this was a common pattern where I worked). There are ways around this, of course – make sure you keep in touch with folks from other orgs, hire people from outside and trust their opinions, and keep up to date with what’s going on in the wider industry.
The climbing frame
A more common pattern these days is to move every few years. You might take a promotion for the new role, or do a sideways step into another company at the same level. You don’t always have to be getting a promotion when you move, though 9 times out of 10 you should be getting a pay rise with that move, unless it’s a conscious decision (e.g. moving to a nonprofit or smaller company).
This might also involve a role change – I’ve known engineers who climbed the ladder and then did a sideways step into a non-engineering role. That engineering background is so powerful when you go into product management, for example.
Some folks hop from company to company every 1-2 years; there’s nothing inherently wrong with this approach. The old advice goes that lots of short stints at different places will look bad on your CV/résumé, but 1-2 years is a decent amount of time in the industry these days.
One advantage is that you get insight into how different companies work and different tech stacks, and you should hopefully be negotiating pay rises with those moves, even if they’re lateral moves. Some of those roles might involve promotions, as well.
Of course, people working short-term contracts will have lots of different roles in their employment history and that’s to be expected.
The downside is that if you’re more into the leadership side of things, you might not be hanging around long enough to establish yourself as an authority of anything, and being really familiar with your organisation and its systems. So have a think about whether that’s something you value.
This is actually my career history. Also known as the "Grampa Simpson".
I left my job at Monzo to pursue a role I was offered at a startup because I thought it was a great opportunity I shouldn’t pass up. It ended up not working out – our expectations of the role weren’t really aligned, it was nobody's fault – so I ended up coming back to Monzo in a similar role but a different team. At Monzo they call this a “boomerang”, but that doesn’t fit with my ridiculous playground analogy.
I don’t regret leaving to try it out, and I don’t regret coming back. It’s completely fine to make a U-turn as long as it’s the right thing for you. As I wrote at the time: going back doesn’t always mean going backwards.
Like with any merry-go-round, you don’t want to spin too many times or you’ll get dizzy. It’s good to go on some other equipment too.
Not everyone wants to climb to the top, and that’s okay. There are any number of reasons why someone might want to stay in the same role.
Maybe they like it. Maybe they’ve got other responsibilities outside of work that take up any extra space in their brain. Maybe they value other things in life. It’s all good.
I’m definitely guilty of feeling like I always need to be moving up to the next level, as if by staying still I’m not good enough; but of course, that’s absolute rubbish.
There's no one right way
Progression can mean so many different things. It can mean going forwards and backwards, moving around trying different things and coming back again, or staying in the same place having a great time. It really depends what suits you. There isn't one "right" path to follow!
I hope this has gone some way to demystify the path your career could take, both role-wise and company-wise. And remember, don't let anyone make you feel like you must pursue one particular path or fit your career into a specific box. Only you can make that decision.