- 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.
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"
I'd find it hard to believe you were senior if you had less than that.
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.