DEV Community

Definition of Junior and Senior Developer

Domenico Solazzo on May 10, 2020

Having started a new job as Tech Lead, I have to interview many candidates for Software Engineer, both Junior and Seniors. It is great to intervie...
Collapse
 
phantas0s profile image
Matthieu Cneude • Edited

-- Senior --

It doesn't mean anything, because everybody has its own definition. "This developer is senior!" you might hear. If there is 10 people in the room, they'll think different stuff about him.

Worst, it's used to quality people in general. Who is Senior in everything? Nobody.

-- Junior --

It's a good title for CEO / CTO to decrease the salary of somebody, whatever his/her skills. Otherwise, it doesn't mean anything either.

-- Both --

It's often closely related to experience, and experience doesn't prove anything after, let's say, one year. The skill curve flatten. I saw "Juniors" way better than "Seniors", without the weight of years of bad habits many have to unlearn (including me).

In short, I think we shouldn't speak about Senior or Junior, but more about specific skills. "Fred is an expert in cryptography" is better than "Fred is a Senior".

I speak about it more on my blog.

Collapse
 
kwekuq profile image
KwekuQ

Interesting blog post.

Collapse
 
phantas0s profile image
Matthieu Cneude

Thanks!

Collapse
 
domenicosolazzo profile image
Domenico Solazzo

These are all great points and checking your blog!

Collapse
 
phantas0s profile image
Matthieu Cneude

Thanks!

Collapse
 
marcellusherlus profile image
marcellusherlus

----Senior----
A senior developer is in my opinion, someone who has the right mindset.

  • A senior is everyday willing to help other devs and teach them.
  • A senior drive the dev community in the company into a community that shares knowledge
  • A senior dev can work himself into new technologies and work out the pros and cons of this technology
  • A senior can work in new environments and quickly find orientation in it
  • A senior has a great understanding of a few technologies/ frameworks / languages etc.
  • A senior dev can estimate complexity and time of a project and give strategic advice to the product owner
  • A senior can distribute tasks to other devs.

----Junior----
A junior is someone who is willing to learn but need more or less help of his colleagues.

  • A junior is someone who can work on given tasks(tickets) but often need help from other devs
  • A junior have an overview of different technologies but is not fit in them
  • A junior may can estimate the time he/she needs for a task

Always remember everyone is a junior in some field, if I'm a senior python developer but never saw javascript then I'm a javascript junior.
That's why in my opinion it's more valuable if a developer has the right mindset and the ability to work on new topics without help.

Collapse
 
miksimal profile image
Mikkel

@swyx curated lots of engineering career ladders which I found super useful and recommend having a look at: swyx.io/writing/career-ladders/

The 5 main buckets that seemed to me to be common across the career ladders for what's expected of someone who is no longer "junior" (although not necessarily "senior" either) were:

Independence: learns quickly and independently; able to prioritise tasks; doesn’t get caught up in unimportant details; work only occassionally needs material feedback.

Scope: able to own clearly defined individual small-medium sized features from technical design through to completion.

Engineering: understands basic software engineering principles; familiar with industry best practices; understands the system architecture.

Code: able to write correct and clean code; good sense of β€œcode smells”; mastery of basic language features and most advanced structures.

Communication: able to work well as part of a team; able to prioritise tasks; asks for and gracefully accepts feedback.

Collapse
 
domenicosolazzo profile image
Domenico Solazzo

I didn't know about that site and I will check it out for sure.

I like the idea of these 5 buckets and it really helps thinking about them. Same for the part regarding "no longer junior but although not necessarily "senior" either".

Thanks for sharing your thoughts with the community!

Collapse
 
swyx profile image
swyx

lol is Domenico serious or is he just plugging his socials asking a question he knows will get responses

Collapse
 
domenicosolazzo profile image
Domenico Solazzo

I use the same template when posting here and other social networks for practical reasons. Probably, as you are saying, the social part could have been avoided for this kind of questions and I will remember it for the next questions!

However, the question was important for me to see other points of views and opinions on this topic (even if I have my own opinion on this!)

Moving from a developer position to a more managerial, I need to interview multiple candidates, and reading answers like the one by Mikkel are really helpful for opening my mind on what I should look when interviewing junior, not so junior and senior developers :)

Thread Thread
 
swyx profile image
swyx

uh huh.

Collapse
 
miksimal profile image
Mikkel

well, it's certainly a strong 'about the author' : 'question' ratio πŸ˜‚

Thread Thread
 
domenicosolazzo profile image
Domenico Solazzo

Yeah, maybe it was too strong the 'About the Author' section! 🀣🀣

Collapse
 
berislavlopac profile image
Berislav Lopac

A junior developer thinks that a kilobyte has a 1000 bytes.

A senior developer thinks that a kilometre has a 1024 metres.

Collapse
 
welzfabian profile image
Fabian Welz

not sure if you are serious, but it was funny anyhow 😁

but shouldn't a senior also understand the business and domain side of things aswell and therefore not think a kilometre has 1024 metres?

Collapse
 
v6 profile image
πŸ¦„N BπŸ›‘

A kilometre thinks a meter has 1024 Senior developers.

Collapse
 
lefebvre profile image
Paul Lefebvre

At many organizations the difference is just seniority, but that is a poor differentiator.

My opinion:

A senior dev is one who can work independently on large, often complex, tasks, leading them to completion with minimal coaching and oversight. They can figure out and learn things on their own and do so in a way that matches the organization's goals. They mentor others.

A junior dev is one who cannot yet do the above. They require careful monitoring of their work to make sure they stay on task and perhaps don't re-invent the wheel. They require coaching and mentoring to show them how to research and figure out problems on their own, do effective debugging, etc.

So Jedi/Padawan, I guess.

Collapse
 
aminmansuri profile image
hidden_dude

I'm a bit old fashioned here.

I think a senior developer is someone with a proven track record and 10 years experience at least.

Some define "senior in JavaScript" or "senior in C#", but I prefer to go with an older definition saying that the professional is senior, the skillset can be learned along the way.

However, a "dinosaur" is a senior, that can no longer learn.

Too often these days people call intermediate developers "senior". I think that has to do with scarcity.

Junior or intermediate developers, however, can be very useful if what you need is to rapidly acquire new skillsets in the company. But a true good senior developer brings depth of experience to the company. The exact programming language/framework is less important.

That being said, having person very familiar with the particular platform is beneficial as well.

Collapse
 
youhan profile image
Alireza Jahandideh

I think junior and senior are better defined inside a company. You could be junior in company A while considered a senior in company B.

Being senior in a company, I'd say, means that you know the company workflow and you can make decisions and share your knowledge to other people.

Collapse
 
v6 profile image
πŸ¦„N BπŸ›‘ • Edited

The distinction does not seem to correspond to anything measurable or consistent enough for me to take note of "Senior" or "Junior" in titles for anything beyond garden-variety HR concerns.

I mostly agree with the perspective on this outlined by the writers at simpleprogrammer.com.