The blanket terms "junior" and "senior" for development roles abstract away a lot of the minutiae of a developer's skill set, which to me seems good and bad depending on the context. The way I understand it, "senior" is the most concrete term, and there are more specific understandings and expectations around it that are more easily assumed/deducted from the phrase alone.

However, there's extra flux with the term "junior". Yes there's the term "entry-level", but that's not as widely adopted as the term "junior". I've worked with "junior"s who know practically nothing about the technology beyond completing simple tutorials, juniors who have no experience in other technologies beyond one language or environment and don't know source control or anything else, juniors who do know numerous technologies and have a thorough understanding on architecture enough to have valuable opinions within the context of a project, and juniors who have widespread capabilities and are close to senior but aren't quite there yet. All of them for better or worse consider themselves "junior"s, which to me seems improper.

To illustrate, I'll use Major League Baseball:

  • Rookie player --> Entry-level developer
  • Class-A player --> Junior Developer
  • Double-A player --> Junior Developer
  • Triple-A player --> Junior Developer
  • Major League player --> Senior Developer

There's a lot of abstraction that can either oversell or undersell a "junior" developer's skill set beyond the other terms.

So, is there a communicative term or phrase that expressive a "junior" developer's skill-level more precisely than the blanket term "junior"? I realize it's a difficult role to define, but I was curious.

  • 4
    Baseball skill is much easier to quantify and measure than programming. – Patricia Shanahan Aug 21 '16 at 21:56
  • I understand that hence my comment at the end. It was just to illustrate my point. – Aaron Aug 21 '16 at 21:56
  • I have seen the term 'Medior' used in regards to developers. – R-D Aug 21 '16 at 22:35
  • 3
    Just plain 'developer', or 'Java Developer' for Java. – MikeP Aug 21 '16 at 22:38
  • "Middleweight" also crops up. Although, it's as much as a mystery to me what this means as it is for "Senior" and "Junior". – Nathan Cooper Aug 21 '16 at 22:56

Job titles are totally company dependent, and often meaningless in terms of judging skill set.

I worked for a company where EVERONE was a senior engineer, including the chap who kept the workshop clean and the trainees from the local tech college. It looked better for the company advertising their 30 person strong team of Senior Engineers, and on emails.

When choosing job titles for a company, one thing to factor in is how they look externally, do they add a prestigious look to the company? Can they be used in advertising? etc,.

There is no universally accepted title hierarchy. The best I have worked in was three tier.

Junior Engineer


Senior Engineer

But even then one of the Senior guys got his title (and pay) through office politics rather than skillset.


I would say Intermediate Developer is a good in between. Typically someone between 2 and 10 years experience would fall under this group and is probably where a good majority of developers in the work force fall under. Here is an example job posting. As you can see here they're looking for someone with at least 2-5 years experience.

Typically these developers can write code with only a little supervision for the more routine tasks however they're not usually too involved with the overall architecture of the project unless under close supervision. Note this is a generalization and obviously there are developers that get a lot more experience faster than others or they may be at a senior level for their preferred language but overall may be more intermediate.

  • 2
    The progression can also be Junior Developer, Developer, Senior Developer. Or if you want several levels, Trainee, junior, journeyman or intermediate dev, developer, Senior developer. – HLGEM Aug 22 '16 at 13:52

Your Answer

