As a software engineer approaches or reaches the senior engineer role, the things they need to show to progress further become very different. Many engineers don’t explicitly plan for this, and get stuck at what I call the “experience hump”. Here’s how to move past it.
Note: It’s not mandatory to optimise for career growth! It’s very important to some engineers, but do what works for you and your priorities.
Early career: Experience + competence
Early in your career, optimising for experience and competence gets you a very long way. Basically, if you can get someone trusted to say: “They worked on X, Y, and Z and they were pretty good at it”, you’re in a good spot to move forward fast.
By experience, I don’t necessarily mean years served — there’s not much you can do to optimise for that! Experience also includes the variety and quality of the experiences you have had. Consulting is a great example of a way to gain experiences faster: You might see multiple different industries, multiple different delivery methodologies, multiple different tech stacks all within the space of one year. You might also have been at the right place at the right time, and found yourself leading on a small feature.
Clearly there’s an upper limit to how much you can accelerate this, it takes time to perfect your craft, but time spent carefully optimising for growth experiences will count for more than time spent in comfortable stagnation.
Ambitious junior and mid-level engineers are often pretty good at this. They consistently communicate what kind of learning, teams, & situations they want to experience, and make sure they are getting them.
This works well for a while, but then stops. Usually as you are approaching or just at the senior engineer role.
The experience hump
You have hit the experience hump, experience alone won’t get you much further. You are now approaching a point where you are able to make or break initiatives. Employers start wanting to hear what you’ve actually achieved. You need to start being able to talk about specific impacts you’ve had, and evaluating what that did to the outcomes that your organisation cares about.
A more senior colleague vouching that you are performing well in a given situation becomes a “necessary, but not sufficient” condition for your further promotion. Here’s how you start optimising for this new game:
Stick around longer
When you are in the accumulating experience phase of your career, the market really rewards moving around a lot. It gives you more experience, and it remains unfortunately true that it is often easier to get a better salary by moving employers than by asking for a raise.
You can probably keep jumping around to get a higher base now too — but you need to start being careful. The impacts of engineering decisions are often felt over multiple years, optimising for your base salary at the expense of getting to own a change over multiple iterations of products and team shape might be a very short term tradeoff.
Don’t let yourself be taken for a ride and put up with a below market salary, but pick somewhere and see it through. If you’re consulting, you might want to find a permanent role at this point if you aren’t getting the stability needed to do this.
Specialising lets you match your impact to specific organisational needs faster, but comes with the risk of having to predict what kind of needs the market will reward.
Many people choose to specialise around a tech stack, I think there is value in this, but more value in specialising around something more widely relevant to organisations and team shape.
Security & cloud infrastructure are great examples of this, you move yourself towards more niche roles but you will more rapidly become the expert in the room, which means you more rapidly get to talk about an individual impact that will reassure your current or future employers about your ability to be in a make-or-break position.
Get a great mentor
Right through your career you should seek mentors who are kind (but honest), supportive, encouraging, and great listeners.
That’s all still important, but no longer enough. You need at least one mentor who has specific, relevant experience to help you make a bigger impact in your current project. It doesn’t matter how brilliant you are, you’re going to get your impact story faster by surrounding yourself with great advice.
This means you need to be looking outside of your current organisation, your ability to network here matters a lot. Unfortunately, this is much harder if you’re in an underrepresented group in tech: womens tech networks, black tech networks, LGBT tech networks, disabled tech networks, etc. are likely to be key accelerators for you.
Also, if anyone is reading this who is past this point in their career, this is why it is important to deliberately diversify the group of people you mentor. Don’t leave this to chance.
Reflect, and write things down
You need to find ways to be organised and systematic about reflecting on your successes and failures. Don’t just leave this to your memory. I often find that my brain tends to forget about stressful and broken things after a few months, and that if I don’t document what I was doing and feeling at the time, I will have a rose-tinted view of everything behind me.
The best place to start here is Pat Kua’s end of year personal retrospective advice.
Recognise how flawed we are at evaluating impact
I think it’s important to recognise that while this works in terms of landing your next step up, it’s a process incredibly vulnerable to bullshit and egos. Effective leaders with glittering track records have probably made many good decisions, sure, but they’ve also probably been lucky, and benefitted from some privilege along the way. Being at the right place at the right time counts for a lot, and interviewing is not a scentific process.
I don’t think there’s much you can do with this information, but it feels important to point out!