The terms junior, intermediate and senior are primarily related to responsibility. A junior has no responsibility. Juniors are generally not given critical path jobs, rather given reasonably easy to complete tasks that are not critical. At this point a senior developer or team lead is responsible for them. A intermediate developer is one who is trusted to implement code responsibly. They are trusted to complete tasks or stories with minimal oversight. A senior extends responsibility beyond their personal efforts. This may involve mentoring, system design, team building, scheduling and development practices.

This is not about age or development skill as such, it is about increasing responsibility and ownership. Such progression is not necessarily automatic. You can get locked into restrictive roles which do not allow you to take on additional responsibilities. I have found smaller startups provide roles that are less strict in terms of separation of roles, which allows people to develop their skills. Larger companies tend to be more inflexible, but there is a rather wide variation in company culture.

To be honest the terms themselves can be potentially corrosive unless you clearly communicate to developers what is required to advance in terms of responsibilities.

 
 

As a Junior myself, this was exactly the definition I needed to see. It makes so much sense!

 

I'd say it means different things to different people, and that can be pretty frustrating.

So regardless of individual definitions, it's largely irrelevant.

But thing's associated with "juniorness" in relation to other titles, I think juniors are expected to be able to execute given a set of instructions, but won't necessarily be expected to think about the bigger picture and identify good problems worth solving.

 

Junior engineers tend to be unable to justify intuitions with rigorous enough arguments to convince others.

Mid level engineers have valid intuitions and can validate them given enough time but they still lack "global" intuitions.

Senior engineers have an intuitive grasp of the technology and can make snap judgements and validate them in short time frames and convince others of the validity of their methods. They also tend to waste less time in fruitless rabbit holes.

I don't know what comes after senior level.

 

I don't know what comes after senior level.

Appeasement.

 

I think this is a pretty accurate description of those levels, the difference becomes more about being able to think "bigger picture" instead of actual coding skill.

 

Juniors are given work, seniors choose their work.

But I think it's a spectrum and you can be junior in some areas of your work while being senior in others.

Like, you're a senior JS dev, but a junior Angular dev. So you find your JS tasks by yourself, but need help finding and solving Angular tasks

 
 

One simple definition I have is personal ownership. As a junior, I found myself in a position of execution and not so much innovation. As I progressed in my career, that changed slightly to where I'm engineering solutions that made the area's discipline even more refined.

I would often tell the newer developers, "when you see code or commits and it bothers you on a spiritual level where you have to fix it right now, then you know you're a Senior"

 

'Junior' and 'senior' tend to mean different things to different people, so when I do use these terms, I make sure that it's understood what I mean with them (as with all things, good/effective communication is key).

What I mean with these terms focuses mostly on what 'senior' means: when you present a senior developer with something that needs to be done, you can be sure that you no longer have to worry about it: they will get either get it done (with them taking care of what's necessary), or you'll get concrete feedback on why it's not possible. And they'll do this in a way that doesn't harm potential time tables. Note that this says nothing about the number of years of experience or even the breadth of their skill set. It's all about reliability.

In case of an 'intermediate' developer, you'll need to give some initial guidance, and ideally check up on them every so often. In case of a 'junior' developer, you need to provide closer supervision, to ensure that they're correctly interpreting the requirements (which isn't self-evident), that they're generally using the right tools and approaches (which comes with experience), and that they don't bury themselves in yak stacks (which can just as well happen to solitary senior devs).

 

I've always seen junior and senior developers defined in very different manors, and often the work environment these developers are in have different definitions of a junior and a senior dev. First things first no matter if you're a jr or a sr you're still a dev, you're still working for the same people and your code still matters. From experience most places I've been at define these two on the skillset and your code knowledge, sometimes it can be in general not relating to one specific area but more often its is this case. My work currently focuses around C, C++ and Python, in the views of my current I'm a senior developer because of the position I have been hired for. However during an interview we discussed these roles, and he told me that If instead of working on the backend server side of things if I went into the web portion of the company I'd be a junior dev, this being because I can make and write code for websites but my skillset for it is pretty low.

I've always found that junior devs are more often given tasks that aren't so challenging and are designed to help them improve their skills while working for their employer(s). Personally I believe being a junior dev is critical in a persons dev career. Some people will jump over junior and move to a standard or senior dev position, I never felt like this was a good thing to do seeing as a lot of employers will assist the junior devs in their position to help strengthen their knowledge.

 

As we are defining the term in the scope of programming I could explain AMAP.

I think a junior developer is the one who just started his career as a developer and his background experience lies in a percentage of (10 - 30)%, he is only responsible for street and well-defined problems that he has to solve.

Of course, in order to get your way through this career, you probably have a lot of work waiting for you and has to be done e.g. Reading books, finishing some online courses, etc.

 
 
 

I like the way @rkoutnik defined it during his talk on dev.to

Any idea if it was recorded?

 

Its the ability to lead projects with a certain level of confidence.

 

Best definition for a senior engineer that I've ever seen:

I believe a senior engineer is more than just technical prowess. It is more than how many languages, best practices, or frameworks you know. I would say it's all about attitude. A senior engineer owns their work. Most engineers do what they are told, do the specific work, and hand it in like it is homework. A senior engineer takes full ownership of their work. They will deep dive into the problem, understand how their work fits in the system, understand what value their work brings to the business, and support their work after completion. Senior engineers have an attitude of growth for the business, such as seeking out how to make the business more efficient through technology, mentor and guide junior engineers and other senior engineers. A senior engineer owns their career, they are constantly learning and constantly trying to teach and help others around them.

If you can do that. I don't care how much experience you have.

 

I really like this bit:

.. and support their work after completion.

If you support your work after completion you get to deal with the consequences of your decisions, IMO the best way to improve.

 
Classic DEV Post from Jul 13 '18

What tools are in your toolbox?

There are a lot of wonderful tools that help us get stuff done quickly, here is a list of some I use.

I'm Brenda! A frontend developer. 👩🏻‍💻 I'm From Mexico 🇲🇽 working at Code Party. ❤️videogames ❤️writing ❤️code ❤️mexican food ❤️huskies

Sore eyes?

dev.to now has dark mode.

Go to the "misc" section of your settings and select night theme ❤️