I've been struggling to understand job hierarchy in software engineering.
The system is further complicated because of the lack of consistent naming conventions when assigning roles: for example, some companies just have a "senior software developer" position while others have Software Engineer I, Software Engineer II, Software Engineer III, and so on.
Even in the top level positions, we have things like "Principal Software Engineer" vs. "Staff Software Engineer".
What is the standard hierarchy for software engineers? Is there a generally accepted pecking order?