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!
ABOUT THE AUTHOR
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!
Do you know that I have a YouTube channel? Subscribe!
Where can you find me?
Youtube: Domenico Solazzo's Channel
Oldest comments (20)
A senior developer is in my opinion, someone who has the right mindset.
A junior is someone who is willing to learn but need more or less help of his colleagues.
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.
-- 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.
Interesting blog post.
These are all great points and checking your blog!
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.
At many organizations the difference is just seniority, but that is a poor differentiator.
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.
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.
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.
@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.
lol is Domenico serious or is he just plugging his socials asking a question he knows will get responses
well, it's certainly a strong 'about the author' : 'question' ratio 😂
Yeah, maybe it was too strong the 'About the Author' section! 🤣🤣
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 :)
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!
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 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.