My bar for a senior engineer is someone who can independently drive a large (1 quarter-ish) project to completion with high quality, acting primarily as an IC. They're someone I can throw at a problem and get it solved. They'll by and large get themselves unblocked when stuck - asking questions, talking to stakeholders, etc. They can decompose problems so that other less senior engineers on the team can execute on different parts of them efficiently.
I don't know about other companies, but here's a generalised description of officially what a senior software engineer does.
- Relevant tertiary qualification
- min 5 years experience
- long list of proficiency relevant to particular area of work
- Proven ability to take a lead role in the design and development of a feature from start to completion
- Establish technical feasibility of assigned projects
- Uses diagramming appropriately to convey technical details and features
- Create, Document, Maintain technical design approaches
- Mentor other developers
- Lead debugging investigations and report results
- Present results of research and investigation, to team meetings, or at conferences, etc.
+ Everything a normal/jr dev does
I think it's a pretty good/comprehensive definition, and it seems clear enough to me in my work environment.
I think it's after developing and running a few real world large systems over the course of years. I was an extremely technical "junior" engineer, and I often knew things that "senior" engineers didn't, but there really is no substitute for real world experience over time.
It's a bit like how life works in general. You "level up" every 7-10 years and look back at how "dumb" you were previously. After a few cycles of this you get to a point where you're an "adult" in most of the ways that matter.
A relevant quote from @KentBeck really nails the value of experience:
"first you learn the value of abstraction, then you learn the cost of abstraction, then you're ready to engineer"
Generally in large enterprise businesses Senior engineers are normally individual contributors that can independently architect, design, secure, scale, deploy, maintain and close out individual small to medium size programs normally in the thousand to possible low double digit million dollar value range. They will normally interact with other employees, vendors and stake holders in their business unit to achieve goals. Their documentation, CI/CD are normally very in-depth and high quality (95% code documented, user, developer, admin manuals, product slides, etc). Mistakes made by the Senior Engineer may cause loss of revenue due to individual program failures or loss of employees on the team, normally these issues can be recovered from within a short period of time. These engineers may serve as a tech lead and report to a Principal/Senior Principal or Managers for their program. They will also normally help with interviews and some current program planning and proposals for new programs. You may also be in meetings related to your program or office.
Principal/Senior Principal software engineers are also individual contributors that normally do what senior engineers do, but are normally trusted to deal with engineering and technical management of the larger multi-high double to hundred million or billion dollar enterprise national and international scale programs due to having a large history of successful programs experience (e.g. 10 years minimum normally that are critical core business programs). If they make mistakes it can normally causes grave problems to the entire organization that may not be recoverable, multiple closures or high revenue losses across multiple programs. These engineers normally report to C-Suite Executives, and Senior Management, they may also have managers under them. They will normally also provide general and in-depth documentation and training for multiple programs and mentor senior and junior engineers. They will normally write proposals, presentations, BoMs and write job descriptions for multiple program staffing requirements for the company and may serve as program(s) managers or in a supervisory capacity. You will normally be in meetings about multiple programs under you for multiple offices and working on future business programs in the 5 to 10 year range.
There are also normally Fellows grade employees in companies and these individual contributors may service as strictly long term technical business development or program review and sustainment types. They normally have the around 5 to 10 years working as a Principal or Senior Principal engineers but focus more on the technical business side (think more program management with technical skills for future programs). They may also help with the larger enterprise wide programs and normally report to C-Suite Executives or Senior Leadership. You will normally be in meetings helping gather information about programs under your for multiple offices and very long term future business endeavors 10 to 20 years.
[+] [-] mindvirus|7 years ago|reply
[+] [-] byebyetech|7 years ago|reply
[+] [-] zerr|7 years ago|reply
[+] [-] flapjackfritz|7 years ago|reply
- Relevant tertiary qualification - min 5 years experience - long list of proficiency relevant to particular area of work - Proven ability to take a lead role in the design and development of a feature from start to completion - Establish technical feasibility of assigned projects - Uses diagramming appropriately to convey technical details and features - Create, Document, Maintain technical design approaches - Mentor other developers - Lead debugging investigations and report results - Present results of research and investigation, to team meetings, or at conferences, etc.
+ Everything a normal/jr dev does
I think it's a pretty good/comprehensive definition, and it seems clear enough to me in my work environment.
[+] [-] staunch|7 years ago|reply
It's a bit like how life works in general. You "level up" every 7-10 years and look back at how "dumb" you were previously. After a few cycles of this you get to a point where you're an "adult" in most of the ways that matter.
A relevant quote from @KentBeck really nails the value of experience:
"first you learn the value of abstraction, then you learn the cost of abstraction, then you're ready to engineer"
[+] [-] mabynogy|7 years ago|reply
[+] [-] 1ba9115454|7 years ago|reply
I'd find it hard to believe you were senior if you had less than that.
[+] [-] raztogt21|7 years ago|reply
[+] [-] zn44|7 years ago|reply
[+] [-] marktangotango|7 years ago|reply
[+] [-] techjuice|7 years ago|reply
Principal/Senior Principal software engineers are also individual contributors that normally do what senior engineers do, but are normally trusted to deal with engineering and technical management of the larger multi-high double to hundred million or billion dollar enterprise national and international scale programs due to having a large history of successful programs experience (e.g. 10 years minimum normally that are critical core business programs). If they make mistakes it can normally causes grave problems to the entire organization that may not be recoverable, multiple closures or high revenue losses across multiple programs. These engineers normally report to C-Suite Executives, and Senior Management, they may also have managers under them. They will normally also provide general and in-depth documentation and training for multiple programs and mentor senior and junior engineers. They will normally write proposals, presentations, BoMs and write job descriptions for multiple program staffing requirements for the company and may serve as program(s) managers or in a supervisory capacity. You will normally be in meetings about multiple programs under you for multiple offices and working on future business programs in the 5 to 10 year range.
There are also normally Fellows grade employees in companies and these individual contributors may service as strictly long term technical business development or program review and sustainment types. They normally have the around 5 to 10 years working as a Principal or Senior Principal engineers but focus more on the technical business side (think more program management with technical skills for future programs). They may also help with the larger enterprise wide programs and normally report to C-Suite Executives or Senior Leadership. You will normally be in meetings helping gather information about programs under your for multiple offices and very long term future business endeavors 10 to 20 years.
[+] [-] draw_down|7 years ago|reply
[deleted]