Should we do away with junior/middleweight/senior?

charliedeveloper on March 30, 2018

Sometimes you have to step back from a situation to see it for what it really is, and I think this is particularly true of the way software devel... [Read Full]
markdown guide

Perhaps it's my personality or that my first "real" dev job was as "cto 🤔" of a two-person startup, but I never even considered labelling myself "junior". I didn't say "senior" either, I was just a developer.

But the thing about humans and language is that any time we sort of do away with some construct we kind of wind our way back into that situation by playing with words. We have a remarkable ability to twist the meanings of things until we fall back to the hierarchical statuses we collectively crave.


I hadn't thought about it like that before, its a really interesting point - people tend to instinctively put themselves inside boxes. To attempt to add to your idea perhaps in addition to the developers that do this to themselves, quite often it may be the gatekeepers to positions i.e the recruiters that do this as a way to gauge some level of understanding of what companies expectations and individuals expectations are and if they line up. Some of the approaches I have had from recruiters have focussed more on if I am a junior/middleweight/senior over talking about the actual things I can do. Hopefully done with the best intentions, however ending up pigeonholing people, I suppose this is where some of the collective frustration about software recruiters may stem from.


I see those terms as useful, but not based on years of experience or number of libraries/frameworks. Instead, it's a way to describe the mental and technical maturity that a developer displays, not only with regard to code quality in the simple sense but also but also in relation to making sensible and maintain decisions from a larger architectural and business perspective.

That of course doesn't mean that everyone uses it in that sense, or that some people use words to trick or deceive (like fullstack = we'll need you to do everything, at an unreasonable pace).


larger architectural and business perspective

I really like your consideration of this. This is so hard to quantify and makes up such a huge part of the criteria of being considered an experienced developer by others.


"it's a way to describe the mental and technical maturity a developer displays" - this is what terms such as junior, intermediate, and senior mean to me and also a number of companies which I have worked for.

My current employer also rates non-tech skills, such as sensible decision making, self direction, client interaction etc, when considering the seniority of staff and for performance reviews.


This is particularly relevant for companies who hire full-stack developers. Inevitably you will have some with better front end or backend or DB etc skills than others, this does not (or should not) determine their "level". While you may be "junior" at one thing you could be "senior" at another. In this scenario labels become not only useless but harmful to the team.


agreed, full stack devs are likely to have T shaped skills and labelling incorrectly across the stack skills totally feeds into this.

code of conduct - report abuse