There is a common misconception of what a senior developer is. Some may tell you it's the years of experience, others may say it's the "bugfixes per second". It's none of those.
What a senior developer is NOT βοΈ
When you look for a developer/software engineer job and read through the postings, you find a pattern where recruiters seem to define a senior developer on the number of years they have experience in the field. Well, this is not how it works. Determining what and what, not a senior developer is, is more complicated than that.
Let's start with what they are not:
- People that know everything about a programming language
- Know all the answers
- The absolute truth
Problem solving π‘
One of the essential traits of a senior developer is the ability to solve problems quickly while also:
- staying efficient
- making sure not to introduce unnecessary sources of errors
- creating as little friction with the existing system as possible
- thinking of the bigger picture
- having expandability/reusability in mind
- make decisions about potential trade-offs
There is not always enough time to make perfect solutions. A senior developer must know which sub-optimal solution they can accept for the moment, but be sure to raise awareness that it's a quick solution for now but that it needs to be changed sometime in the future.
Tech skills & experience π
Of course, it is important that a senior developer has a vast amount of technical skills experience. This does not mean that they know every syntax by heart and can list all the array functions available.
No, this has more to do with knowing what tools and software patterns are out there, so they can choose the correct one for the problem at hand.
Often, a senior developer has some sixth sense when it comes to possible roadblocks. This experience is drawn from previous projects. They can't immediately explain why one road may be worse, but they can almost bet on why one solution would be better. When they look closely at the problem, they will eventually find what's wrong exactly with a given approach, though.
It's also vital to know what you don't know and do some more research to learn more about the problem.
Knowledge of technologies βοΈ
A great senior developer also knows about tools available, even if they are not using them and even if they don't remember exactly how they work. They know when the occasion arises that there is something out there that could be a great fit.
They are experts in pairing the perfect tool with a given problem. They might have to do some research to ensure that a tool is right for the job, but they know what to look for.
Especially at the beginning of a new project, a senior developer should make wise choices of which decisions pay off in the long run.
From start to the end π
A senior developer is capable of handling every step of the way to build a part of the software:
- Analyze the problem
- Understand the problem
- Form a viable solution for the problem
- Implement the solution
- Test the solution
- Integrate the solution
- Deploy the solution
Mentoring π
One important quality that every senior developer should possess is to be able to lead others. This means:
- Help them to up their skills
- Guide them to better solutions and help them understand why
- Help them when they are stuck
- Don't look down on them
- Provide them with interesting and helpful resources
- Cheer others on
- Share what you know
- Give credit where credit is due
Communication π¬
Senior developers should be great communicators:
- Explain a problem to someone in an understandable way (even to non-tech people)
- Present a solution and explain why among all the solutions, his is the best
- Navigate political situations in the workplace
- Try to shield other developers from bad management decisions
Humbleness π
A senior developer is not always right, and they should know that. Everyone makes mistakes, and when they make one, they should own up to them:
- Raise awareness of a problem
- Claiming responsibility
- Analyze the severity of a problem
- Have a range of solutions to solve the problem
- Accept help
Also, a senior developer should never assume they are always right. They should analyze input from others and be prepared to accept it as a better solution. However, they should not be easily influenced by others either. They should always have the best solution in mind. There is no place for ego.
Summary β¨
In summary, a senior developer is really good at solving problems, choosing the right technology for a job, and helping others excel at their own job.
Top comments (39)
That's excellent.
A company just made me pass a multiple choices quizz on codingame.com and it pisses me off how irrelevant it was. My gut told me "You are measuring the wrong things!! A senior developer is not someone who knows a lot of trivia by heart π¬π¬"
That's so true, don't tell me! I have had the same situation :) tons of tests, not even passing all of them, I have been forced to eat hackerrank for breakfast, lunch and dinner for about 3 months, what a shame people don't understand what a senior level means. Great post, also liked a lot Jean's answer.
Honestly, If I get to the 'Your going to be interviewed by our Sr Dev `{{Insert Name Here}}`. I like to follow up with 'Cool, may I see thier github/gitbucket page?'
After all, I do wanna see whom I'd be working with and what their code is like, just like they are curious about mine.
My wife had to do even worse ridiculousness. She had to submit working programs for a series of programming questions - not just a few lines of code, but full programs.
Not one person interviewing her asked her about her solutions. She asked the last person she interviewed with, and they said they never look at them. WTF is the point of these exercises?
π― agree on mentoring. Enabling others is so important, your team/product may only be as strong as the βweakestβ developer so Senior Devs can use their experience to bring up the skills of everyone else. That then means everyone is making better decisions and writing better code.
I agree as well. A good senior is hoping to develop teammates to become peers to accomplish more interesting tasks together as a team.
They should also be interested in learning new things from anyone, because by default a senior will have more experience and therefore their education was further in the past than a more recent person entering the field. Things change, and keeping up with the changes is what makes a good developer at any level. The people that learn just enough to do their job, are rarely good seniors.
Titles are so subjective.
Even using the measures above, you'd get a lot of grey areas. Non-seniors that have all the qualities & skills of seniors and seniors that are lacking enough qualities & skills to question their level.
Honestly, I feel that what makes someone a senior or not comes down to being given the opportunity as opposed to not.
Also, beware of someone using their title as a reason to "be right". A clear sign of someone "promoted" based on years of experience or past knowledge, rather than skill and aptitude for leading anything.
Sometimes is about searching for the opportunity. If you feel like you are a Senior already, and the company you work for doesn't give you the opportunity to show it, then you always have the option to seek that opportunity elsewhere.
I want to hug you. This is exactly how I see myself as a Sr. App Developer. You don't know how many times I feel this is missed when getting interviews these days. What do I bring to the project? Why ask me to take a coding test? I've done it for 25+ years. Memorizing code means nothing if very little at all to interview for this role.
Though years of working in plenty of companies, interviewing for those companies and being interviewed for dozens more, I am totally sure there is no universal definition of a senior developer.
True, plenty of job postings will define the role as X+ years and knowledge of every tech the team has ever touched.
Some even require a person to be a kind of one-man-army, capable of leading the team, communicate the business requirements between stakeholders and the team, architect the whole distributed system infrastructure and automate deployments.
Few of the companies I have worked with would gladly promote a person with 3+ yrs of experience and a solid skill in the project tech stack to senior. My current company has requirements so high that senior position is easily comparable to lead dev of those others.
I guess the more or less right definition comes from team and company needs at that very same moment a senior developer is needed. Which you never know before that moment has come.
I wish more people mentored. Out of my relativley short career, I know of only 2 people who have actuall been more of a mentor to me. One is now retired the other I no longer work with.
Are there mentors out there still? I feel like I'm missing out.
Yes there are most definitely many of us out there that enjoy mentoring and sharing and challenging our colleagues! But remember mentoring is always a two way thing (you have to genuinely want to learn from someone and maybe even ask them directly)... and itβs often bi-directional meaning you may be the mentor on one topic while learning from others on another.
And finally, even if the mentoring relationship isnβt formal or the other party is a consultant...you may learn a lot from them as they have been around many other industries and environments.
And being argumentative out of ignorance will ensure that no-one is interested in sharing much of anything with you (I keep hoping my current client tech staff may one day learn this) :-)
Excellent article. About that sixth sense: I had a manager press me as to why I had added 30% to an estimate as a contingency. What was it for? I said that I couldn't say what was going to go wrong, but based on the size and scope of the spec, I knew that something would. Of course, then when that something did come up, I had to put on my lawyer's hat and prove that I didn't deliberately cause it or overlook it in my estimate (in that case it was api changes from an ecommerce partner that they didn't feel they had to tell us about.).
ahh! but it is my old enemy broken API contracts.
Ohhh yes. People donβt understand that sixth sense. Itβs also hard to explain. But itβs definitely a thing!
Whilst the above is sometimes true, from 25 years as a developer I've seen that it's most often the case that a 'senior' developer is usually just an older developer.
God, yes!! , often I see many developers say "I am a senior" only because know a lot about a language and they are +40 years old.
I love to mentor people, I always try to do the best communication channel for my team, I try always to share my knowledge. But I can't find a good job because my weakness is the logic problems and solve problems in hackerrank, I am the average developer only for this, is so stressful.
Good to read the post.
I think senior developers have so many roles to do, and people have different expectations in their mind. Sometimes, I feel that when someone says the word 'a senior developer', it can be replaced with a super man. π