DEV Community

Cover image for If everyone is senior, then no one is senior
Bruno Noriller
Bruno Noriller

Posted on • Originally published at linkedin.com

If everyone is senior, then no one is senior

Are 2 years enough to make someone “senior”? If it is... then what is a junior? And where is the middle?

Open any job board and it will feel like every company only hires seniors... but if everyone is a “senior”, then no one really is one.

Because of that, you start having positions like “staff”, “principal”, “expert”, “advanced”, “specialist”, “lead”, “rockstar”, “master”, and any combination of that... (ok, I haven't actually seen the “master” one... yet.)

And if you have to create new positions to show seniority, then a senior might as well be a junior!

The “years of experience” myth

You can have decades doing the exact same basic thing without any alteration or you can have a wild couple of years doing odd jobs that let you experiment with a breadth of problems... what even is seniority in this case?

There are a couple of books and TED talks out there about the “10_000 hours” and the “first 20 hours”. And they certainly apply to programming.

And of course...

dunning kruger effect
忍者猫, CC0, via Wikimedia Commons

Am I saying all those 2-year seniors are on the ‘Peak of “Mount Stupid”’?

No! Or well, perhaps?

Some do manage that, after all, networking and connections, not the techy type of them mind you, do net you jobs and opportunities you wouldn’t have otherwise.
Also why some people suffer from impostor syndrome.

So... why?

Maybe ego? Maybe self-realized prophecy? Maybe laziness? Maybe short sight? Maybe all of that?

Why don’t you put in the comments “the why”?

Why is this bad?

An old adage is that a junior is someone who gives others problems, a middle level is someone who takes care of his problems and a senior is the one that fixes others’ problems.

And by that definition, a senior has to help others in order to grow.

And it should go without saying that you can’t just spawn as a senior... you should go through the steps. It maybe will take a different time for each one, but it will be there.

For the developer

Impostor syndrome aside, developers get lost on what to apply to and might either moonshot or undershoot, and in either case... someone will have a bad time.

For the companies

They spend a lot to hire, retain, and finally replace people.
But more than they lose knowledge. If everyone is senior... who are they repassing their knowledge to? What happens when they leave?
And besides... having seniors making simple CRUDs and centering divs is a kind of waste don’t you think?


What I want you to think about

There’s a reason to divide people into junior, medior, and senior.

There might be even cases to have something more than that if it actually means something.

And you can always forgo that and opt to have some kind of progression with levels...

Just like our functions and variables have meaningful names, ordering, and reason... so should the developers’ positions.

There’s a job and a place for everyone.
A senior leaving on a senior team also leaves with the knowledge.
A senior leaving a proper team with juniors and mediors will leave behind some knowledge with the others. Also... they will develop into seniors eventually.


Cover Photo by Vidar Nordli-Mathisen on Unsplash

buy me a coffee

Discussion (18)

Collapse
alexeagleson profile image
Alex Eagleson • Edited on

My take is that unless the entire industry is willing to band together and establish actual definitions with quantifiable values then it's always going to continue to be a messy and ambiguous label.

The fact is that there is significant financial incentive for people to apply a senior title to themselves, and not difficult at all to find a small company where a single dev takes on roles and responsibilities at a "senior level" by most traditional definitions of the term, except of course "years of experience."

Then YoE similarly tends to have a weaker correlation with skill level in software than other fields, presumably due to the incredible speed at which things change.

I don't think there's any easy answers, but I personally never fault another developer for playing the silly "title" game to further their career.

Collapse
noriller profile image
Bruno Noriller Author

The entire industry banding together for anything is something I don't see happening so soon (or you know, ever).
But the compensation part... the position will pay what it will pay, but the title behind will attract or repel some. I also see a bunch of "senior" positions that are paying less than those mythical few "junior" positions.
But you're right, it's difficult to find a good answer. I just hope it would be easier to at least weed out some obvious bad ones.

Collapse
robencom profile image
robencom
  • Junior: 0-2 years of experience
  • Mid: 2-5 years of experience
  • Senior: 5+ years of experience

But of course there are exceptions, this isn't a 100% science. So a better definition would be:

  • Junior: slow to finish tasks, lacks confidence, familiar with few technologies, doesn't understand the full picture of the development process.
  • Mid: finishes tasks barely on time, lacks confidence, familiar with some technologies, is familiar with the full picture of the development process but cannot handle it by themselves.
  • Senior: finishes tasks on time or earlier, is confident, familiar with enough technologies and can learn new ones quickly, has a clear vision of the full picture of the development process and can handle it by themselves.

People in our industry now understand this which is why they want Seniors mostly, because both juniors and mids need a senior to take care of them, this is due to the complexity of our work and also due to the fact that the work is not organized in a way that a junior can do their part.

This is not the same in ANY other industry, where for example, one worker puts the product in a package, another worker wraps the package and so on. In other industries, each worker has a specific tiny work, meanwhile, in our industry, it still surprises me that they desire FULL-STACK devs who need to know: PHP - Laravel/Yii/Symfony/Zend, JS - Vue.js/React.js, CI-CD, Networking, Linux CLI, Git/SVN, Jira or whatever else they use, MySQL/Redis/MongoDB/ElasticSearch/CHUGACHINGA/FILL-IN-THE-LATEST-TECH-THAT-NO-ONE-EVER-HEARD-OF-IT-BUT-SOMEHOW-IT-IS-A-HARD-REQUIREMENT

It is CHAOS, sadly, and it is up to each one of us to push the narrative that we want to see in the future: as for me, I stopped applying for FULL-STACK jobs and I always tell the recruiters or the devs that full-stack makes for sloppy code, because devs are either backend or frontend oriented, I believe it is VERY rare to find a dev who likes and enjoys both front and back equally.

Collapse
noriller profile image
Bruno Noriller Author

Instead of technologies, I would put having the basics.
Some people get far too used to working with one framework that they blur what is framework and what is language.

But I have to disagree about the "how much time they take".
I mean, sure, if you compare the same task, yes, probably it will go like that. But having a team means that a senior don't have to make something a junior or a mid can do, and can, instead, do things that the others can't or don't even know how to start. (like performance, scalabity, security...) Altough, yes, they still need to "take care" of others.

Collapse
robencom profile image
robencom

True, but a senior would not be limited to performance, scalability and security. They do development tasks just like the other team members.
In my last project, I had 1 junior with me. What I did was I usually gave him the easy tasks and took the harder tasks on me. Even the easy tasks would take a long time with him and he would ask me 1000 questions until I finally give him the solution.

Collapse
jayjeckel profile image
Jay Jeckel • Edited on

The suits' primary job is inventing new titles, when they aren't finding other ways to interfere with actual work being accomplished, so no one's ever going to solve that problem. Settle a definition for Senior vs Junior and by lunch some management, marketing, or HR department will have subdivided, recontextualized, and synergized a dozen different new terms to reconfuse the situation.

As for the community itself, one can call themselves whatever they want, but a look at their code will quickly suss out who's a senior and who's a junior. Titles are worthless, experience matters to some extent, but it's the code that does the talking, as it should be.

Collapse
maddy profile image
Maddy

This is an extremely interesting article, and a matter I think about often.

I've seen people quickly becoming "senior", maybe because as a senior the salary is higher (you also have more responsibilities though).

I think that to become a senior you need solid problem-solving and leadership skills.

You can develop these skills through experiencing a wide range of business problems and working in different settings. Senior engineers know why you should do/use something instead of something else and know how to justify their reasonings.

I'm not sure if 2 years are enough. Probably not.

Also, I believe that this is a problem partially caused by HR (or whoever creates the job descriptions). Some job descriptions are INSANE. 🤣

Collapse
noriller profile image
Bruno Noriller Author

You mean the classic "we want a junior with the experience of a senior, oh, and we are paying an intern salary".

Although... I'm more inclined to blame other developers, I see many are lazy and don't want to take care of more junior people.
Also others who believe in doing, even the more trivial stuff, themselves instead of passing those to people who should be doing those (juniors and mediors).
And when you have just seniors... then you're being wasteful having seniors just to center divs and make CRUDs.

Collapse
ingosteinke profile image
Ingo Steinke • Edited on

At least these titles add some positive value to being "senior" (literally: older) which is otherwise often regarded as a disadvantage, also in information technology, with the prevailing ageism fearing that people get "too old" to understand new technology or get things done quickly. So as I'm not the youngest anymore, maybe I should take pride in calling myself a "senior" or I could make a joke out of it and make business cards with "Elderly Frontend Developer".

Collapse
jonrandy profile image
Jon Randy

In every company I've worked for, "Senior" anything simply means "older". Skill level is irrelevant

Collapse
natescode profile image
Nathan Hedglin

I've interviewed too many "senior" developers that couldn't code Fizz Buzz.

Collapse
noriller profile image
Bruno Noriller Author

Another side effect to add!
Since all positions are for "senior", many think they can (and some certainly do) bullshit their way into a "senior" position.

Collapse
natescode profile image
Nathan Hedglin

True. Sadly it is really hard for junior devs these days. Even us seniors aren't good enough if we don't have 5 years experience with every piece of tech a company uses.

Collapse
robencom profile image
robencom • Edited on

<?php

function fizzbuzz($n) {
for ($i = 1; $i <= $n ; $i++) {
$output = '';
if ($i % 3 == 0) {
$output = "Fizz";

}
if ($i % 5 == 0) {
$output .= "Buzz";
}
if ($output == '') {
$output = $i;
}
echo "$output------";
}
}

fizzbuzz(45);

Collapse
andrewbaisden profile image
Andrew Baisden

I think there are even different levels to a Senior developer because no one person is the same.

Collapse
snelson1 profile image
Sophia Nelson

Good stuff.

Collapse
hannudaniel profile image
Hannu-Daniel Goiss

i agree with you.