Engineering career progression is often described as a ‘ladder’ or ‘track’, where you can also switch into a parallel management track. However, this doesn’t adequately illustrate where the tech lead role sits, or why the staff+ engineer levels have at least as much in common with management as they do with coding. To be able to explain this we need to separate the concepts of management and leadership. The result is the engineering career triangle.
There’s quite a lot of information encoded in this diagram which I’ll explain in more depth, but the key points are that the black dots indicate a position, solid arrows show career progression within a track, and dashed arrows show a switch between engineering and management tracks.
Job titles vary hugely in engineering so I’ve tried to pick a set that are fairly cohesive and representative of what I’ve seen at a range of companies. It probably won’t exactly match what your company uses.
Management vs leadership
Management and leadership are often conflated, but they’re orthogonal. Management responsibilities include performance assessment and feedback, dealing with interpersonal conflicts, and overseeing the planning and delivery of projects. Leadership is more about defining the vision for the organisation, establishing and defending culture, and inspiring people to work towards common goals.
Perhaps the most significant difference, however, is that management implies authority whereas leadership does not. In other words, you have to do what your manager tells you, but it’s up to you whether you follow a leader. That said, good managers are also good leaders, and rarely need to flex their authoritarian muscles.
The reason this distinction is important is that engineers are not managers, but as people in either track become more senior their focus shifts more onto leadership. Consequently the tracks which look quite different at lower levels start to converge, and include many of the same responsibilities at higher levels.
In many engineering organisations there isn’t a defined equivalence between engineering positions and management positions. The career triangle makes it obvious by putting equivalent levels in the same horizontal band. Level defines, among other things, the compensation people receive so a senior engineer will be paid similarly to a standard-level engineering manager.
I’ve labelled them from 3 through 8 which might seem somewhat arbitrary, but is based on the approach taken by Deliveroo, which was in turn largely copied from Facebook and Google. However, Microsoft use 59 through 69 for these levels, and Apple use 2 through 6, so this is far from a universal convention even among the FAANG companies.
If you want to retain senior engineers, and have them stay as engineers rather than switching to management, then it’s important to have this kind of equivalence defined. Without it there’s always doubt as to whether managers are treated better (higher compensation, etc.) and whether engineers are really second-class citizens.
We can roughly divide positions into segments based on their primary responsibility. Note that although the areas of these segments are roughly equal in the diagram, in reality that will be far from the case. In a typical organisation around 80% of people will be in the green segment, with around 10% in each of the yellow and purple ones.
This illustrates why the transition from senior engineer to staff engineer shouldn’t really be seen as a promotion, but more as a change of role. Focus shifts away from a single team and working on one or two products, writing production code most days, to working across multiple teams and often not writing production code for weeks at a time. It’s a transition that many engineers don’t want to make because what they really enjoy doing is working in a team and writing production software.
Working backwards from this, the rationale behind having two levels of senior engineer becomes clearer. There can a long time between mid-level (“Engineer”) and staff—perhaps ten or fifteen years—even if people actually want it, and without this distinction it can be hard to show progression or give people who have already made senior realistic goals to aim for.
This should also make clear that being a tech lead is not a promotion, but a different role with more management responsibility, for example organising the work team members are doing. The more senior tech lead roles are deliberately shown closer to the management line, as it’s not uncommon at this level that they will start taking on a bit more of the people management side of things.
As a counterpoint, the junior manager role is shown closer to the engineering line. This is because they typically only manage a small number of people while they learn the ropes, and so because they have more free time and technical skills they will often still be somewhat hands-on. As they get more experienced and manage more engineers, or other managers, being hands-on is no longer practical.
I’ve shown the four most common points at which people switch tracks, but it is quite possible to switch tracks at any point in your career. It gets less common as people become more senior because they are more likely to know which track they want to be on, and less likely to have the skill required for the other track, but there are some people who oscillate between the two.
In general if you’re moving from an engineering position to a management position, as a new manager, you’ll drop a level or possibly even two because you won’t be as skilled at management as you are at engineering. Going back the other way it’s more likely you’ll stay at the same level if you’ve maintained technical skill, but if you need to re-skill that may not be the case.
It’s worth noting that in many countries, the UK included, your salary cannot legally be reduced even if you change level. This makes it relatively risk-free to try switching tracks if you want to. Most good companies will support you doing this, and switching back if it doesn’t suit you. The tech lead role is a great way of dipping your toe in the water.