Junior developer, senior or maybe mid?

Grzegorz Papaj , 16 December 2019

Nowadays, there is a trend in the developers’ environment to define the level of advancement of developers as “junior developer”, “senior developer”, “mid” or “mid level” sometimes also described as “regular”. Everyone seems to use these terms. But what exactly do they mean?

developers working together

Approaching the topic with a certain degree of malice, one could say that these degrees differ from each other only in the offered salary rate, and in the job seniority at best of times. And sometimes, in fact, looking especially at the headhunter / employment agents market, you get the impression that this is exactly the case.

Fortunately, this is not the case, and this kind of skill grading can be useful, especially in communication with clients. Below we briefly describe the definitions of degrees of initiation, which we consider as reasonable, which most of our contractors agree with and which we use ourselves.

It is worth mentioning that these degrees are not based on job seniority, but on certain specific sets of competences gained through the growth process of a programmer.

Junior developer

  • works under supervision,
  • does not set tasks by itself,
  • does simpler, more routine tasks,
  • usually does not communicate by oneself with client/receiver of created software
  • does not make design decisions

Junior developer/mid-level developer/regular developer

  • works by oneself under minimal supervision
  • defines its own tasks within the set goal
  • can solve technical problems self-directed
  • communicates by oneself with client/receiver of created software in technical details of implementation
  • can manage a small team
  • makes design decisions
  • is able to implement a medium-sized project by oneself

Senior developer/project manager

  • can work on complex tasks by oneself
  • can supervise and lead a large dev team
  • supports the team with its expertise
  • teaches members of its team
  • communicates with client//receiver of created software at level of technical and business goals
  • makes strategic design decisions
  • is able to implement large projects
  • (more about senior developers you can find in this article: What is the benefit from an experienced Senior Developer?)

Of course, it isn’t a strict division. Nevertheless, they is quite good approximation of what you can expect from programmer at a certain level.