loading...

What defines a senior software engineer?

baradm100 profile image Bar Admoni ・1 min read

What defines a senior software engineer? What are their responsibilities? I get this question a lot from friends, family, colleagues, and even from myself.

There is no one clear definition; every company, website, and person have their definition.
As a team leader in the past and a senior software engineer today, this is my definition:

  • Holistic view - understanding the bigger picture, where the product is going, and how to engineer it.
  • Communicating with all the involved parties - Being able to bridge between PO, PM, UX, SRE, and engineering, so everyone is up to speed.
  • Involved in the full software development life cycle - contributing to every step of the development cycle.
  • Being a mentor and a guide - teach your knowledge to others, identify weak and strong points, help grow, and empower others.
  • Improving your team - Senior will help develop and empower the people around them.
  • Spot pitfalls and solve them ahead of time - recognize patterns and have the "future sight" to understand possible pitfalls and their solutions.
  • Not a function of years of experience, but knowledge - as put by Darknight at softwareengineering: "Some achieve the above in 2 years or less, others take 10 years".

So, what is your definition?

Discussion

pic
Editor guide
Collapse
nikoheikkila profile image
Niko Heikkilä

It's easier to say what does not define a senior engineer. Here's a couple that come to mind:

  • age
  • work experience in years
  • amount of certificates collected
  • university grades
  • salary (though often these are well aligned)
  • tech skills

Wait, what? Looking at tech skills can't prove whether someone is fit for a senior role? Correct. When thinking of senior engineers I often reference John Allspaw:

"Being able to write a Bloom Filter in Erlang, or write multi-threaded C in your sleep is insufficient. None of that matters if no one wants to work with you. Mature engineers know that no matter how complete, elegant, or superior their designs are, it won’t matter if no one wants to work alongside them because they are assholes. Condescension, belittling, narcissism, and ego-boosting behavior send the message to other engineers (maybe tacitly) to stay away."

Let us become mature engineers instead of seniors.

Collapse
baradm100 profile image
Bar Admoni Author

I really liked your closing line:

Let us become mature engineers instead of seniors.

This pretty much sums it.

Collapse
codinglanguages profile image
Your DevOps Guy

I'm happy to see that we agree on many points.

"Do not equate years of experience with wisdom. There are people with 10 years of experience and people who have experienced the same year ten times. I recommend never getting too comfortable with what you are doing to keep growing."

I wrote an article about this recently here.

Collapse
baradm100 profile image
Bar Admoni Author

Happy to see that as well!
Fascinating article!

Collapse
jonrandy profile image
Jon Randy

More often than not... age

Collapse
alainvanhout profile image
Alain Van Hout

In my own experience, age isn't that good a predictor for this. It's indeed a property shared among most senior developers, but I could say the same about having two eyes and two legs, or being able to read and write.

Collapse
jonrandy profile image
Jon Randy

I'm not saying that it's a good predictor - but in 25 years as a developer, I've found that it is usually the case - even if there are younger devs that are more capable

Thread Thread
alainvanhout profile image
Alain Van Hout

What I'm saying is that age (or 'experience') doesn't inherently make a developer more capable. It's generally the mindset that sets apart more capable developers. That mindset usually takes time to develop (so age is indeed a factor), but there are plenty of develops increase in years without improving in mindset.

Collapse
baradm100 profile image
Bar Admoni Author

I totally agree with you Jon, having the correct personality and attributes do not have a direct correlation to age.

Collapse
jonrandy profile image
Jon Randy

Unfortunately though - in real life, having the title "Senior Developer" usually has more correlation to age than to actually having the requisite skills

This is my point

Thread Thread
alainvanhout profile image
Alain Van Hout

Yes, I see your point. I took 'senior developer' to mean more than that, since then the answer to the post here would be "a senior software engineer is someone who has the title 'senior software engineer' on their contract'. Which is as much true as it is meaningless.

Collapse
jennrmillerdev profile image
Jen Miller

I think that's a great list you have there!

I also sometimes like to consider 'the ability to handle responsibility and accountability'.

As developers progress in their career, we will start making decisions that have larger and longer lasting impacts to users, the project, and teammates. As we 'mature', we will want get a better handle of understanding these responsibilities, enjoy being responsible for changes, and be able to see the change through.

Collapse
baradm100 profile image
Bar Admoni Author

Thanks Jen!
Your point you raised is spot on in my opinion.

Collapse
rdc112 profile image
Ryan Cooper

I'm a bit late to the party but I like this:

Spot pitfalls and solve them ahead of time - recognize patterns and have the "future sight" to understand possible pitfalls and their solutions.

This came to me after being a Senior Dev for a while. I often get a good sense of which solutions won't work for a particular problem before I understand what will