Definition of Junior and Senior Developer

domenicosolazzo profile image Domenico Solazzo Updated on ・1 min read

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 interview candidates but of course, everyone has a different understanding of Junior and Senior developers.


  • What is your definition of Junior and Senior developer?
  • What are your expectations and requirements for these two kind of positions?

Let me know your answer below!


Domenico is a tech lead and software developer with a passion for design, psychology, and leadership.
If you need help with software development, you need consultancy for your technical challenges or you need a leader for your software team or just want to collaborate online, feel free to contact me!

Follow me


Do you know that I have a YouTube channel? Subscribe!

Where can you find me?

Youtube: Domenico Solazzo's Channel
Instagram: domenicosolazzo
Linkedin: solazzo
Medium: domenicosolazzo
Facebook: domenicosolazzo
Twitter: domenicosolazzo
Snapchat: domenicosolazzo
Github: domenicosolazzo
Website: https://www.domenicosolazzo.com
Dev.To: https://dev.to/domenicosolazzo
Hashnode: https://hashnode.com/@domenicosolazzo

Posted on Mar 28 by:

domenicosolazzo profile

Domenico Solazzo


Tech Lead. Software Engineer. Family man. Fitness lover. I want to build great products.


markdown guide

-- 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.


These are all great points and checking your blog!


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.

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.


@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.


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!


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


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 :)


well, it's certainly a strong 'about the author' : 'question' ratio 😂

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


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.


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

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


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?


A kilometre thinks a meter has 1024 Senior developers.


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.


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.


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.