Junior engineers should be able to drive smaller, well scoped projects.
Senior+ engineers should be expected to tackle complex, cross-org, ill-defined technical challenges, examples include technical mergers of company acquisitions, large scale migrations of business critical systems, technical design of big bets (also analysis on which big bets to take), evaluate new technologies/platforms, dev tooling to multiply productivity, etc
A lot of this requires buy-in and stakeholder management to succeed.
- Alignment / priority management / keeping team focused
- Saying yes/no to projects
- Medium term planning, resource balancing
- Helping to set team vision and mission
- Reporting to upper management (up)
- Keep up to date and abreast with what’s happening in the org, filtering info to the team (down)
- People management (career, performance, strengths/weaknesses etc)
- Spotting and creating opportunities for the team
- Often acting as a tie breaker for decisions (including technical)
- Often involved in steering technical design and solutions
- Help keep the team productive and happy
- Probably a ton more I’m forgetting
Tons of finesse and strong communication skills required for this as well as strong technical experience.
And then there’s project management which I haven’t touched on — either can be done directly by engineers (personally I enjoy it, some don’t which is fine), engineering managers or dedicated technical project/program managers.
>- Saying yes/no to projects
>- Medium term planning, resource balancing
>- Helping to set team vision and mission
>- Keep up to date and abreast with what’s happening in the org, filtering info to the team (down)
>- Often acting as a tie breaker for decisions (including technical)
>- Often involved in steering technical design and solutions
I think it should be done by senior engineers organically as engineering is a social activity. No one person can achieve greatness and to me an engineer becomes a senior engineer not by being a brilliant coder (for example) but by understanding that the job is to solve problems.
These are my rough notes on project management (from an engineer’s lens):
https://docs.google.com/document/d/1XFdBUfi3MvQuh9NTFBJMQFA0...
Lots of blanks to fill still, but I am a proponent of engineers owning their own project management.
> I think it should be done by senior engineers organically as engineering is a social activity. No one person can achieve greatness and to me an engineer becomes a senior engineer not by being a brilliant coder (for example) but by understanding that the job is to solve problems.
100% agree, lots of overlap between responsibilities and often a good thing! Roles from all parts of the org coming together to solve problems is the ideal situation.
My first approximation is that engineering managers are responsible for the team health, whereas engineers are responsible for project health, or at least raising issues when things aren’t so healthy.
That's rare. In most companies managers aren't engineers, don't understand the craft and are picked by their buddies. They also have completely different incentives which allows them to throw engineers who spent ages to master the craft under the bus without any regards/regrets.
So much damage is done by the wrong people being constantly rewarded and promoted for creating noise by "leading" large pointless projects instead of doing the real work. Sometimes I've seen the new hire engineer solving the critical issues like problems in a data pipeline by collaborating across teams is actually having more impact that any of the senior engineers or management bsers.
On some it might be an architect level engineer who also manages the team. In others it'll be nothing more than a middle manager that only will see code on their spare time. And it can be everything in between.
So depending on the kind of move it will not have anything to do with engineering and everything to do with managing. And that's HARD. Changing your whole set of skills for another overnight it's not pleasant.