The following is my take on seniority levels.
Junior engineers are very productive. They are eager to try new technologies, and once they do, they move fast. They are very optimistic, so they don’t test their code thoroughly. They need a clear goal or will procrastinate.
Semi-senior engineers are comfortable with specific design patterns/technologies. They know how to set goals and unblock themselves. They don’t move as fast as junior engineers since they take bugs as professional failures. They will spend as much time as needed to test their code.
Senior engineers come in two formats: technicals and managers. Technicals are the ones who are experts in a specific area (back-end, front-end, data), and they are aiming for Principal or Architect levels. Managers are tech leads aspiring for VP or CTO levels.
Identifying the aspiring role early in the engineer’s career will help you build a career path that is exciting and rewarding.