Hiring for any kind of technical role is never without risk. And let's face it, it can be daunting to assess the nuances of talent and team fit in a few simple interviews plus a code exam. So how *should* we think about the value differences between:
A great engineer and a decent one
An experienced senior engineer or a talented junior
A unicorn from a yak
So we asked some experts. 38 of them, actually. As part of every interview on our Frontier Podcast, we asked successful engineering leaders what they most look for in an engineer, beyond technical acumen. Specifically, "When hiring a senior engineer- what are the factors you most look for? What are the heuristics?"
We're going to be honest...the answers gave us a few surprises.
1. Commitment to Professional Development
The number one answer that we heard over and over again was "a commitment to professional development." They want engineers on their team interested in constant and ongoing learning, in both technical and non-technical realms. Christine Spang of Nylas summarized it well...
"It's not just learning the next new technology. It's also adapting to the changing ways that software engineering organizations are run and the different kinds of skill sets."
- Christine Spang, Founder & CTO of Nylas
Put a ring on consistency
Hiring someone with expertise in a particular stack is great, and certainly helpful at the project level, but looking for someone that consistently learns new technologies and implements them into their workflow is a valuable asset for the long-term of your team and future projects.
"A special type of developer is comfortable navigating the unknown...They're not worried if they know all the technologies. They just enjoy the fun of getting them there, tracing things, and learning."
- Kelly Stevens, VP of Engineering of OneSpace
Say "I Do" to "I Don't Know"
Finding an engineer committed to their professional development, with 7 to 10 years experience, doesn't mean they know everything. A great engineer - no matter how many technical years under their belt - should still be comfortable with the phrase, "I don't know". Why?
No one knows everything, period.
Saying "I don't know" is the sign of a great leader. Yes, you read that right, see here.
A lack of knowledge leaves room for curiosity and passion to take over.
Key Takeaway: look for someone that doesn't know everything, but has the willingness to try.
2. Soft Skills
Historically, developer jobs don't hinge on good communication skills. The average dev could clock in, never talk to anyone, and leave for the day having gotten the job done. But, frankly, those days are gone. We need customer empathy, we need clearly articulated logic for architectural decisions, we need good stakeholder relationships, and the list goes on. We call them soft skills, but they are really professional skills, and great developers have them.
"It is very important that you can communicate your technical abilities and the solutions that you're proposing to other people. It's very important that I'm not only seeing the technical abilities but I'm seeing how you're able to relay that information."
- Shawn Kuenzler, Co-founder & CTO of Manatee
Painting the right picture
If you're wondering what communication should look like from a senior engineer, consider the following:
Clearly communicating their process and solutions to everyone, technical or not.
Speaking upon their opinions about a project by concisely relaying how they think it can be better.
Consistently sharing updates to managers, stakeholders, and clients on projects when milestones are reached.
"I've seen engineers who are really good at problem solving but they struggle with communicating. Engineers need communication so that skill in problem solving flourishes. "
- Rahul Garg, SVP of Engineering at Pypestream
The true art of communicating
In looking for communication skills, it's not just about how they talk to stakeholders or clients. A huge part of communication is how they talk with a team. The following are questions to consider:
Do they ask teammates for help to expedite troubleshooting?
If working parallel with other engineers on a project do they maintain a weekly, daily, or monthly time to align on progress, updates, and helpful feedback?
Key Takeaway: Communication is key to streamlining productivity, quality and deployment
3. Diverse Experience
Engineers who consistently learn new things and stay committed to professional development will inevitably increase the depth and breadth of their technical ability. How? They put their work to practice, capitalize on it and implement their knowledge into new projects.
"You do need to have a good amount of depth technically. It is a broad job but if you just brought it at PowerPoint level, it's not anywhere good enough because you can't really make informed decisions and you can't lead a team. I think you have to have some depth.
-Jim Nasr, VP of Tech & Innovation at Synchrogenix
Deep technical depth helps engineers make educated code-level decisions, and can help lead a team when the rest of its members lack experience and require mentorship or guidance. Great engineers who diversify their experience are more prepared to handle challenging situations in a a variety of business contexts - a key differentiator between good and great.
"It's the engineer who takes the time to continue to stay fresh which in today’s day and age is a tall order on itself. A good mix of work ethic, curiosity, a solid knowledge base and a decent dose of experience, in my mind, makes a good engineer."
- Mike Talbot, VP & CTO of Veracity ConsultingD
A diversity of experience is usually a result of deeper-held personal values like:
Solid work ethic
A decent engineer can stick to a couple of technical skills and stay in their comfort zone. A great engineer consistently goes above and beyond to study, implement and practice new technologies to be as valuable as they can to their team. That isn't an easy task and the more diversity in an engineer's portfolio is a testament to their work ethic.
Curiosity is fueled by passion and when an engineer is curios, they are simply feeding their interests. A great engineer does not look at deepening their wealth of technical knowledge as more work, in fact, they don't think about it all it comes to them as second nature.
Key Takeaway: The greater the depth of technical knowledge and experience, the better decision making, work ethic and problem solving.
Where there is passion, there is drive. And where passion lacks, there are shortcuts. If your team members are not passionate about what they're working on, it means they are unfulfilled and it's going to show in their work.
"I do value a lot of the behavioral aspects a bit higher than the technical hands-on skillsets. In terms of the behaviors, I'm more looking at the drive, the passion."
-Merlin Quintin, Director of QA Engineering at Redbox
Magnum P.I. the hell out of the CV
You shouldn't have to do too much investigative work to figure out what an engineer is passionate about. A great engineer won't apply to a job they have no interest in the first place, as they have probably learned it's not only a waste of your time, but their time as well.
Some tips to uncover passion:
Dig into their CV to find a pattern
Do they primarily work on projects related to healthcare? Do they have multiple projects using AI? Do they have a lot of experience designing?
Get them talking
Ask the right questions! Unless they're a robot you'll be able to tell what project they worked on in the past that they were most passionate about and why by the inflection in their voice.
"What I'm looking for is mostly how passionate they are about what they're working on ─ because it really goes a long way with building a solid team if everyone is on the same page."
- Robert Fratila, CTO & Co-founder of Aifred Health
The case for a team player
Interestingly, it seems there is a correlation between passion and being a good team player. Don't see the connection? Consider the opposite, you have an engineer that is not passionate - or even worse - vocal about it to the rest of the team. They will waste more time poisoning the well and interrupting workflow, instead of building up the team and boosting moral so everyone is on the same page to produce the best product possible.
Bottom Line: Passion is the antidote to mediocre code and a bad team player
5. Problem Solvers
Lots of our experts mentioned problem-solving as a key proxy for performance. Sure, it helps complex logic problems day-to-day, but good problem solvers can also help solve team dynamics challenges or contribute to business-level strategy questions. Again, these are the things that separate good from great.
"How do they think? How do they problem solve?...Is this person the kind of person whom you wouldn't want to go to war with, the kind of person who is going to run through walls..."
-Kevon Saber, CEO of GoCheck Kids
A fixer is not just for politics
Reliability is important, especially in this industry of unpredictability and things going wrong. A problem solver will face challenges head-on (or head down, get it?) to find the best solution possible. As a manager, It's important to know that when sh*t hits the fan the people on your team are reliable and will handle a problem carefully, correctly, and in a timely fashion.
"A good developer can solve the problems that may be created.Can they self-manage? Can I give them tasks and they just come back and knock it out, understand the end goal, and be able to deploy that?"- Joel Neidig, CEO & Co-Founder of SIMBA Chain
Vote for self-management
No manager wants a team member who needs their hand to be held. If they can manage problems in a high stress situation, they can manage themselves in a day-to-day setting. A great self-manager will often feel comfortable taking initiative to proactively solve a problem, without being explicitly asked to go the extra mile. Self-managed engineers have a high ROI.
Key Takeaway: A solid problem solver on the team usually means having a good self-manager on the team.
Just to point out the obvious here: no one had a specific stack in mind when thinking of the heuristics of the best candidate. Finding someone who can code is a bit like an NFL coach making sure a quarterback can throw (sports!). Building a great team is much more nuanced than that. It's a deeper set of considerations which often determine the difference between an ok hire and a home run (more sports!).
At Gun.io we spend hundreds of hours in interviews and on calls with clients with the hope of sharpening our understanding of great software engineers. And we often make our candidate recommendations based on similar themes we heard from our podcast guests.
Team-building is, without a doubt, equal parts art and science. Hopefully, the insight shared here will help shape how you think about the softer side of technical hiring. Cue sports gif.
A Handy Checklist
Being a good coder is table stakes. Dig deeper.
Passion is the antidote to mediocre code and a bad team player
Look for someone that doesn't know everything, but has the willingness to try.
The greater the depth of knowledge and experience, the better decision-making and work ethic
Communication is key to streamlining productivity, quality, and deployment
A solid problem solver on the team means having a self-managing and reliable engineer