DEV Community

Cover image for What I Look for When Hiring Senior Software Engineers
Tyler Hawkins
Tyler Hawkins

Posted on

What I Look for When Hiring Senior Software Engineers

As a senior software engineer at a large growing tech company, I have the privilege of helping interview many other software engineers who apply to come work with me. Throughout the last year, I participated in about 50 interviews for positions ranging from mid-level software engineer to senior software engineer to engineering manager.

This experience has given me time to reflect on the qualities and skill sets that I value in other senior software engineers, and as a result, I try to craft my interview questions in such a way that I can hopefully get a glimpse into these attributes during the brief time I have with each candidate.

So, without further ado, here are the things I look for when hiring senior software engineers.


1. Ability to communicate clearly with technical and non-technical people

This is important for two reasons. First, as a senior software engineer, you'll serve as a mentor to junior and mid-level engineers. Other engineers will often come to you with questions, and you'll need to be able to explain technical concepts to them in simple terms. When you give code review feedback, you'll need to explain clearly why a piece of code is not ideal the way it currently is written and how it can be improved.

Second, as a senior software engineer, you'll often lead through indirect influence. You aren't managing anyone directly, but you do need to be able to spread your ideas throughout the organization and rally people to join you in your cause for clean code, higher engineering standards, or whatever it may be. If you can't communicate your ideas effectively, you'll have a hard time convincing others that your ideas are worth their time.


2. Attention to detail

This quality comes in many forms. You'll often see it in an engineer's own code as well as in their code reviews when looking at other people's code.

Engineers with strong attention to detail are sure to check and double check their work before submitting it to others for review. They write meaningful commit messages. They clearly name their variables and functions. They are lovers of clean code.

It's important to note that senior software engineers are not infallible. They still make mistakes. The key though is that most of the time they catch these simple mistakes on their own so that others don't have to do it for them.

These practices and habits extend to their interactions with other engineers during code reviews as the senior software engineer seeks to lift his coworkers in helping them write cleaner code as well.


3. Emotional intelligence and maturity

A senior software engineer needs to understand that they are not their code. You must take your ego out of any argument or discussion. Understand that criticism of the code is not criticism of the person.

Senior software engineers need to be able to have hard conversations with other people whether it be about code quality, job performance, or managing expectations regarding project timelines.

At the same time, senior software engineers need to understand how their words and actions affect other people. Emotional intelligence includes not just a self-awareness but also an awareness of those around you. Senior software engineers should know how to constructively provide feedback in a way that uplifts and inspires, not degrades and demoralizes.


4. Humility

Senior software engineers do not know everything. Nor should they! The field of engineering is far too massive for any one person to master it all.

A good senior software engineer understands this fact and is comfortable with it. You don't need to know everything, but you should be able to recognize when you don't know something, when to ask for help, and how to find answers to questions on your own.

This understanding leads to humility. There is no room for ego in the software engineering world. You should never feel like you are indispensable or that you are the only one who can adequately perform your job duties. The team and the company will go on without you if and when you move on.


5. High standards for engineering excellence

Senior software engineers set a high bar, both for themselves and for those they work with. They use effective tools like code formatters and code linters to enforce standards and coding styles. They understand the importance of tests and don't allow untested code to be merged into the master branch. They configure CI/CD pipelines to automate the tedious part of code reviews and to ensure that the master branch is always kept in a working state.

Senior software engineers view programming as a craft, not just a job. They are proud of their work.


6. Expert in their domain

Senior software engineers have advanced to this level for a reason: they are good at their job. This means knowing their tech stack or language of choice at more than just a superficial level. Their expertise is T-shaped - deep knowledge in a few areas and a breadth of experience in many other areas.

They gain this expertise through years of tackling hard problems, volunteering for tough projects, accepting stretch assignments, and learning from those around them.

Senior software engineers take advantage of the wealth of experience available to them by reading classic programming books like Clean Code, Refactoring, The Pragmatic Programmer, or Design Patterns. In doing so, they vicariously learn lessons from domain experts who have spent decades perfecting their craft.


7. Passion for learning

Senior software engineers are excited about their job. They're interested in new things. They're always exploring new ideas through reading articles, watching videos, building proof of concept apps, or maybe even writing and producing content.

In short, they're not stagnating in their career, and it shows.


Conclusion

Hard skills are important, and a senior software engineer needs to know their stuff. They are expected to be experts in their field, or at least in a subset of a few key areas.

However, as important as hard skills are, I've often found that soft skills end up being just as important, if not more so.

In summary, here is the list of qualities I look for and value in other senior software engineers:

  1. Ability to communicate clearly with technical and non-technical people
  2. Attention to detail
  3. Emotional intelligence and maturity
  4. Humility
  5. High standards for engineering excellence
  6. Expert in their domain
  7. Passion for learning

I hope this helps, and thanks for reading!

Discussion (12)

Collapse
cjsmocjsmo profile image
Charlie J Smotherman

Thank you for this article it was very well written.

I would like to get your input on some questions that I have had for a while and since you are a hiring manager your input on this would be highly valued.

At what age do you stop considering candidates for employment? More precisely at what age does the resume get buried on the bottom of the stack?

Would you, and have you ever considered a "Senior" (someone over 50) for a junior development role?

Which is more important to you personally when it comes to hiring a developer, experience or social fit. I understand both are desirable but if you had to choose?

Please do not take this as an attack, this is only an attempt to gain insights on what "Senior" (people over 50) developers such as my self should do to land that developer position.

Thank you and happy coding

Collapse
scottfred profile image
@ScottFred • Edited

Charlie,
Are you trying to bait the author? Why would you even ask, "At what age do you stop considering candidates for employment?" That's like asking, "How old do you have to be before I will consider hiring you for a software position?" Come on. You're giving us senior software engineers (over 50) a bad name.

I don't take the author's meaning of "Senior" to be "Senior Citizen", but it appears as if you are ("Senior" someone over 50). Any software developer, regardless of calendar age, needs to have skill to be considered "Senior" as I understand it to mean. Senior has nothing to do with age or the number of years of software development experience. Any software engineer that has been doing the same thing, year after year, for 20 years, has only one year of experience in my book.

However, any software engineer that has been taking online courses, experimenting, building, sharing with others (blogging, meetups, tech lunches), is worth their weight in gold. They have something that can't be bought - a passion for the craft of being called a professional.

Collapse
stojakovic99 profile image
Nikola Stojaković

Ageism is an issue in the software industry, at least from what I saw by reading experiences of older software engineers - that's why they moved to consultant roles, management or opened their own companies.

Collapse
cjsmocjsmo profile image
Charlie J Smotherman

Are you trying to bait the author? Why would you even ask, "At what age do you stop considering candidates for employment?" That's like asking, "How old do you have to be before I will consider hiring you for a software position?" Come on. You're giving us senior software engineers (over 50) a bad name.

No just asking the tough questions. After being "ghosted" by countless recruiters and hiring managers once they find out my age, yes I feel this is a very relevant question and one that needs to be raised.

Senior has nothing to do with age or the number of years of software development experience.

What does "Senior' mean then?

Any software engineer that has been doing the same thing, year after year, for 20 years, has only one year of experience in my book

I disagree I would call them an "expert" on the subject.

However, any software engineer that has been taking online courses, experimenting, building, sharing with others (blogging, meetups, tech lunches), is worth their weight in gold. They have something that can't be bought - a passion for the craft of being called a professional.

Yea I use to believe that until I started looking for a job. After 4 years of job searching I do not agree with this statement.

To be clear I'm not looking for any special treatment just because I'm old.
All I want is a fair shot, and from my experience that doesn't seem to be the case.

Food for thought, will there be a place for you in the IT industry when you hit 50 years old?

Happy Coding

Thread Thread
scottfred profile image
@ScottFred

Yup, there will be a place for me in the IT industry when I hit 50... How do I know that? I'm already 50+ and I've got a great Software Engineering job. Sorry you feel you haven't been given a fair shot, but I would challenge you to look inward and ask yourself what you could be doing to improve how you communicate the skills you have to recruiters. Can you write blog posts about the skills you have? Can you show a portfolio of projects that you have developed? Have you contributed to open source projects? Have you presented at a Meetup? Have you presented things about software topics at previous software gigs? Have you mentored others? If you can't do at least a couple of these things, regardless of your age, you're going to find it hard to find a job in this industry and I'm trying to challenge your mindset rather than pointing the finger at the recruiters.

Thread Thread
cjsmocjsmo profile image
Charlie J Smotherman

Yup, there will be a place for me in the IT industry when I hit 50... How do I know that? I'm already 50+ and I've got a great Software Engineering job.

This is good to know, at least there is still hope :)

Sorry you feel you haven't been given a fair shot, but I would challenge you to look inward and ask yourself what you could be doing to improve how you communicate the skills you have to recruiters. Can you write blog posts about the skills you have? Can you show a portfolio of projects that you have developed? Have you contributed to open source projects? Have you presented at a Meetup? Have you presented things about software topics at previous software gigs? Have you mentored others?

Yes I have done all this and more. My sons business website is up on Heroku, my blog is up on Gatsby Cloud, my resume is up on AWS, maintained several packages in Debian and was an uploading developer for Ubuntu. I even moved to Seattle from Texas to be "more appealing to potential employers".

After a 4 year journey that's not over yet, I have looked inwards many times wondering whats wrong with me, what am I doing wrong, why can't I do this, what can I do better. I appreciate your advise and it's good advise that others should follow, but so far it has not yielded any results for me. But who knows maybe one day :)

Happy Coding

Collapse
thawkin3 profile image
Tyler Hawkins Author

Thanks Charlie! It's an interesting question for sure. I hear about "ageism" in the workforce and especially in the software engineering field where you typically see twenty-something year olds in hoodies depicted.

I can only speak from my own experience, but I've hired people of all age ranges so far. The most important thing is whether or not the candidate has the right skill set for the position and if they can get the job done, so we should focus on that.

This is again just my own hunch, but I hope that ageism will begin to disappear from the workplace now that the nature of work has changed. It seems like it used to be that people worked for the same company for 30 years and then retired with a nice pension. Now people job hop much more frequently. It's common to see software engineers switch jobs every few years (that's been my work history so far!).

So with a much shorter expected time at each company, there's really not a disadvantage to hiring older employees. If we hypothetically had a 20 year old candidate and a 50 year old candidate with somehow exactly equal job skills and experience, what difference does age make? I wouldn't expect either person to still be with the company when they retire, so age would become irrelevant. This idea of hiring young people with potential who will be at the company for a long time and provide a good return on investment is hopefully an outdated one.

(We need to have this whole discussion of course keeping in mind that age is a protected class when interviewing, and it's illegal to discriminate against someone based on their age. What we're really trying to combat here are implicit biases that may be more subtle.)

Anyway, I hope this helps. My main takeaway would be to focus on having the right skillset and continuously learning, and the rest should take care of itself.

Collapse
cjsmocjsmo profile image
Charlie J Smotherman

Thank you Tyler for your response it is very much appreciated.

I can only speak from my own experience, but I've hired people of all age ranges so far.

Yes and that's a good thing, but have you hired anyone over 50 years of age for a junior developers position? I could be wrong but I would venture to say that the answer is "no".

The most important thing is whether or not the candidate has the right skill set for the position and if they can get the job done, so we should focus on that.

Okay let focus on that. Let's discuss just one of my projects. It's a DIY security camera system that utilize's imagenode, imagehub, imagemzq, opencv, tensorflowlite and mongodb. Backend is written in python, and the frontend is written in flutter/dart with plans of using rsyslog, logstash, elasticsearch and kibana for a dashboard to monitor it. Skills aren't the problem age (or more precisely "social fit") is.

This is again just my own hunch, but I hope that ageism will begin to disappear from the workplace now that the nature of work has changed. It seems like it used to be that people worked for the same company for 30 years and then retired with a nice pension. Now people job hop much more frequently. It's common to see software engineers switch jobs every few years (that's been my work history so far!).

I hope you have a good 401k then :) If not it's going to suck when your my age. And one day you will be my age.

If we hypothetically had a 20 year old candidate and a 50 year old candidate with somehow exactly equal job skills and experience, what difference does age make?

My question exactly. It shouldn't make a difference but it does.

(We need to have this whole discussion of course keeping in mind that age is a protected class when interviewing, and it's illegal to discriminate against someone based on their age. What we're really trying to combat here are implicit biases that may be more subtle.)

Yes this is true but is does allow you to answer the very broad simple yes or no question of "Have you hired anyone over 50 yrs of age for a junior developer position".

Once again thank you for your insights Tyler.

Happy Coding

"I have no special skills, just passionate curiosity"
Albert Einstein

Collapse
monfernape profile image
Usman Khalil

Tyler, I've always learned from you. Excellent writing.

Collapse
thawkin3 profile image
Tyler Hawkins Author

Thank you Usman! That’s very kind of you.

Collapse
mrsamroy profile image
Sam Roy

Excellent and very descriptive of the overall job of a Senior Engineer...now if only more upper management would understand that.

Collapse
gal1l0 profile image
gal1l0

Thanks, for This.