Senior Software Engineer -> Staff?

Soldato
Joined
30 May 2012
Posts
2,526
Location
Bristol
I'm currently a senior software engineer, full stack but more backend focused. I'm not necessarily a fan of just doing people management and meetings all day but I enjoy being able to have an input technically on a higher level and moving towards the architectural side of things.

In terms of IC roles I guess at this point the logical progression step is to something like a staff engineer. However it seems to be quite hard to work out what the actual difference means in practice as the title seems to mean different things at different companies.

Has anyone here made a similar jump from senior engineer -> staff engineer, what is different about the role for you and what did you need to do to get there? Thanks :)
 
I did senior->lead (people would call that staff now)->principal

The principal role was oversight over multiple teams in a fast growing company.
Example activities: tech roadmap ownership, making sure stuff is put right before it becomes a bigger problem, fielding questions / explain whatever to whoever, step in when ppl break stuff, final level of support escalations, helping new leads get up to speed.

The lead/staff role was about making sure stuff got done. The business could say "deliver x by y" and put a staff on the project to make sure it happened, and with confidence that it would happen.
Involved knowing everything about the product, the teams, the history behind everything, the customers and their preferences. Being able to come up with solutions and implement them, and make the most out of the other people on the team. Guarantee quality, that testers are actually proving stuff works, performance, maintainability, cost, etc.

What I did to get there was work 100 hour weeks, be on call 24/7/365, be one of the first dev hires, be lucky to be in a company which did extremely well.

When it came to my next role, I went for senior, better money/responsibility balance, and there's a load more senior roles which matters in this job market. It can work against you if you look over-qualified and all the openings are at senior level.

I have also encountered a company which used the staff role as a false promise to get senior devs to work extra hard, but never actually giving them the promotion, then eventually they get mad and leave, and the company was fine with it because it wanted to reduce workforce.

So my advice is, if there's a natural opening and you want it, go for it, but if you're trying to make an opening where there really isn't one then prepare to be disappointed. It's perfectly ok to reach senior and stay there your whole career, it's the most common path (albeit not much of a path).
 
Last edited:
I did senior->lead (people would call that staff now)->principal

The principal role was oversight over multiple teams in a fast growing company.
Example activities: tech roadmap ownership, making sure stuff is put right before it becomes a bigger problem, fielding questions / explain whatever to whoever, step in when ppl break stuff, final level of support escalations, helping new leads get up to speed.

The lead/staff role was about making sure stuff got done. The business could say "deliver x by y" and put a staff on the project to make sure it happened, and with confidence that it would happen.
Involved knowing everything about the product, the teams, the history behind everything, the customers and their preferences. Being able to come up with solutions and implement them, and make the most out of the other people on the team. Guarantee quality, that testers are actually proving stuff works, performance, maintainability, cost, etc.

What I did to get there was work 100 hour weeks, be on call 24/7/365, be one of the first dev hires, be lucky to be in a company which did extremely well.

When it came to my next role, I went for senior, better money/responsibility balance, and there's a load more senior roles which matters in this job market. It can work against you if you look over-qualified and all the openings are at senior level.

I have also encountered a company which used the staff role as a false promise to get senior devs to work extra hard, but never actually giving them the promotion, then eventually they get mad and leave, and the company was fine with it because it wanted to reduce workforce.

So my advice is, if there's a natural opening and you want it, go for it, but if you're trying to make an opening where there really isn't one then prepare to be disappointed. It's perfectly ok to reach senior and stay there your whole career, it's the most common path (albeit not much of a path).
Thanks, this is very helpful. It sounds like a lot of what you describe in the lead/staff role is the kind of stuff I'm already doing. I'm the most experienced engineer in the team and I get tasked with the kind of high stakes getting it done stuff, I step in to help get tasks done when others are away or not able to, I participate in engineering team planning and UX workshops etc. So I guess it's a case of trying to solidify that and become really competent at it before taking the step.

I guess what I don't want is to try and go up before I'm fully ready and then going from high performing senior -> low performing staff.
 
I guess what I don't want is to try and go up before I'm fully ready and then going from high performing senior -> low performing staff.
Yep - although what matters more than you being ready is people thinking you're ready. If your colleagues think you're the best and respect you, then whatever the reality might be doesn't matter, you can fake it until you make it.
Another thing I did was to smash my annual reviews. I'd turn up with a chunky document explaining why I was already doing the next role and therefore deserved it. Pretty hard for the company to say no to that if they really need the employee to stay. This only works if the company is growing and genuinely open to promoting people. I've seen annual reviews done a bunch of different ways, usually it's structured to keep the employee down, setting targets they can't meet and only talking to them about their career once a year. You can set up in advance that your next review will include you requesting the staff promotion, and get your manager to tell you now what evidence they want to see in the review to approve the request, if they jerk you around over defining the role then the role probably doesn't exist and when you get to your next review and there's nothing concrete then you know it isn't happening at that company.
 
I'm currently a senior software engineer, full stack but more backend focused. I'm not necessarily a fan of just doing people management and meetings all day but I enjoy being able to have an input technically on a higher level and moving towards the architectural side of things.

In terms of IC roles I guess at this point the logical progression step is to something like a staff engineer. However it seems to be quite hard to work out what the actual difference means in practice as the title seems to mean different things at different companies.

Has anyone here made a similar jump from senior engineer -> staff engineer, what is different about the role for you and what did you need to do to get there? Thanks :)
I’ve been both Lead (managing a team), and Principal (same seniority, but purely technical, no man management).

Firstly, from my experience, be prepared to wait longer for opportunities for principal. Most software engineers don’t want to be managers so naturally there is more competition for non-managerial roles. If you are willing to take on leadership, my experience says opportunities will present themselves much more readily. That’s not to say you should take on management roles if you really don’t want to though.

As other posters have said though, if you are in a large organisation, then the way to get promotions is to game the system. Make sure you know all the roles, levels, responsibilities in the organisations. Work on things you are weak at. Point out things you are good at, and when you are clearly operating above your current job level, raise it with management every opportunity you get (without being annoying).

Principal for me is about being a go-to engineer that will ride to the rescue and take on any challenge, the stuff that other seniors have decided they are incapable or not motivated enough to tackle themselves. Make a name for yourself as the guy/gal that sorts stuff out and delivers every time.
 
Thanks, I think I need to go back and make a better record of achievements etc. I guess it's something you forget to do when in the middle of development. I'm at a small company and it hasn't typically been good with specifying job rules, but our HoE is creating these for everyone in the team with how to progress. So it'll be interesting to see next week when we catch up and I see what I need to do next.
 
I'm currently a senior software engineer, full stack but more backend focused. I'm not necessarily a fan of just doing people management and meetings all day but I enjoy being able to have an input technically on a higher level and moving towards the architectural side of things.

In terms of IC roles I guess at this point the logical progression step is to something like a staff engineer. However it seems to be quite hard to work out what the actual difference means in practice as the title seems to mean different things at different companies.

Has anyone here made a similar jump from senior engineer -> staff engineer, what is different about the role for you and what did you need to do to get there? Thanks :)

This is me:
BSc Software Engineering > Engineer > team lead / arch / engineering > lead/project manager (move of be made redundant) > presales specialist > technical product management (12+ years redundancy) > more technical product management > P&L product manager (redundancy) > technical product manager (mini CIO/CTO of multiple services including budget) (redundancy along with 50,000 others) > Technical presales advisory (office moved/company sold so 'redundancy' fired under 2 years) > Lead Product Owner contract (think C level but the title says otherwise) > Product owner (portflolio, including budget for 42 services so less 'product owner' in the traditional sense, fired <2 year 'redundancy' along with the rest of the unit and bosses) > Jobhunter :) I'm currently looking for Product/Technology Head of/CTO/CIO.

I've always found the technology easy - so all my training has typically been on the soft skills side. Things like negotiations, influence, product management, mentoring. It was only in my last few weeks leading 106 people did I end up on a 'leadership' course. Funny it turned out to just confirm and validate the ways I'd worked out.

Staff engineer really is a synonym for FTE perm in a company that has a large amount of through put in terms of contract and <2 year employees. However it's usually more drafting towards the 'Prinicipal Engineer' which is an SME both in terms of technical but also strategic, including managing the pool of people and cost around that technology in terms of what the company direction is - it's like a deputy-CTO with more focus.

What I would suggest is never stop learning new technologies- data science/AI being the obvious one but also understanding customer problem segments. The world is changing and you will need to be more proactive. BE VISIBLE in learning new skills - like doing university short programmes then reflecting that in the reviews and within your LinkedIn.

I think a key thing for you will be learning to step back and let others create a path. Listening first, and asking questions to make them think rather than telling them. walking along side.
 
Last edited:
Back
Top Bottom