I found a very practical and easy-to-get explanation of seniority inside a development team in a Quora post, so I will add it here as I may loose it in the future.
The below definition is important mainly in defining boundaries of what to expect from a team member. Leading a person in the wrong way will both bring bad results and prevent him to progress, if not breaking his career.
Entry level – Junior Developers
These developers are brand new to the game and most will have less than two years experience in total. All things can be solved with code and they will bang straight into the problem without first looking at what is actually needed. They need a lot of supervision and in some cases a breaking in period where you need to knock the “I know it all already” out of them. In many cases the phrase “I dont know how to do that” is very hard for them to say. Many are not used to working in teams or using source control. The great thing is that we all have been there and we know its a growing phase and they will grow out of it.
Intermediate – Experienced Developer
This can be for many the most awkward phase as some will stay here for their entire development career. Usually developers in this role will have between 2 and 7 year and possibly up to 10 years tho it can vary with the level and skill of the developer. They will develop code with less supervision and will likely be able to solve most of the routine problems they face but may struggle through some of the WTF, why is it doing that problem. Many times they will be assigned a task by the dev lead and they will do it without worrying about the bigger picture (when they do start worrying about the bigger picture start them on the course for dev lead). After a while they begin to see issues reoccurring and will begin to learn how to avoid them. They may unfortunately become very attached to their code believing only they can really understand it.
Senior – Dev Lead
At this level, you know what you are doing. Usually experts in their chosen technology stack and will know the supporting stacks quite well. They will be honest about gaps in their knowledge because they know its better for them to get a person who does know what they are doing in to help. They are the ones that get the hard unsolvable tasks and they manage to fix them with what can be described as magic. They will be gifted at troubleshooting often having a strange sixth sense for fixing issues because they have done much of it before. Tends to get code written and then hand it over to normal devs and juniors so that they can learn from it. Often used as a mentor (but this can be damaging because too much of a gap in knowledge leads to conflicts). They will be looking at the big picture and more importantly listening to what the customer needs rather than what the customer wants. Is able to challenge the customer for correct requirements in regular language and in turn tell the the development team what they should be doing. When going into a client, they will begin to understand their workflows better than the clients themselves even after a couple of weeks. They will tend to be more switched on to the issues outside of the programming domain such as data privacy and regulatory concerns. Senior developers will generally be choosier about what they work with because they will have being through the mill and also due to scarcity can decide not to work with a particular technology.