While browsing job offers in software development, you can often encounter words like “junior”, “middle”, “regular”, “senior”, “lead” or “principal”. What do they actually mean? Correct answer, as usual, is: it depends. The idea of job grades, pay grades, tiers or seniority levels seems to be quite subjective, depending on job market situation, country, company, technology and if HR people have a good day or not. Let’s explore the subject and try to find some answers. I will reach for some metaphors and analogies to help with this endeavor.
Assuming that software development is a single monolithic skill, which is a thick approximation, we can ask an essential question – how to grade one’s skill. There are quite a few approaches, let’s dive into some of them.
Typical corporate breakdown you can find out there, is “junior” / “middle” / “senior”. Many companies add another level above, usually called “lead”, “principal” or “staff” and sometimes a level below, like “intern”. One corporation had once a Read the rest of this entry »