How To Hire A Good Software Developer
By Rachel Lee25-Apr-2017Views 3808

If you are in a fast-growing technology startup, you have probably been involved in the process of interviewing and hiring a software developer to scale your teams.

But, what is the philosophy you should adopt during this process?

This post explores some intriguing concepts that are formed behind hiring processes for Engineers and how these concepts shape processes to make the probability of hiring one Good Engineer become the reality. Not just 1, or 10, but possibly, 100 Good Engineers!

(Well, this topic will be covered in the next article)

Along the way, I have spoken with over a hundred engineering leaders in technology companies about what could be their next challenge. I have asked them to share their thoughts with me on what are the two or three things that they look for when hiring a Good Engineer.

The 100% technical fit Good Software Developer vs. The Good Software Developer in love

Here's what a senior leader in technology, who has 15 years of experience and managed teams of up to 30 people across all levels in an engineering organization, tells me:

"The Engineer's technical fit can be around 80% for our 'on the job' requirement, it can be difficult to find a 100% fit, and for those Engineers who have some gaps, it's personally motivating for me to have this opportunity to help the Engineer achieve, and close the gaps."

It would surely be on your wish list to hire the 100% technically perfect Engineer, but sometimes we don't get so lucky.

Certain factors play a part in this equation: your team's location in a place where the pool of candidates could be of lower quality, the nature of your product might mean that you may not need an engineer with the perfect 100% technical fit.

Or, because you are lean and mean, you simply don't have the luxury to wait the way other bigger companies have - they can wait for the perfect Good Engineer to come along in the next few months because they already have others performing in this function, whereas in your small, lean startup, you needed the person in your office yesterday.

These are many different reasons to recognize that sometimes the not-100% technical fit Engineer can also be a Good Engineer for your team.

Listen to what this engineering leader for the backend team in an on-demand, media streaming platform, has to say:

"The fit I'm looking for includes having an appetite for risk taking and innovation. A lot of Engineers do the work as you want them to, but the people to hire should be someone who brings good ideas, someone who is also good at execution, who wants to challenge the status quo - and this person is incredibly hard to find!"

Simple. Does the Engineer l-o-v-e what he does?

What is the approach taken by Good Software Developer who love what they do, how do they participate in the team and work together with others?

Do they try to do more, to push themselves to do "more" than the normal, typical job, just because they want to see the difference after?

Are they someone who wants to help others, and are able to understand patterns in order to think broader?

Are they able (and ready) to do something - something beyond what they currently are doing?

If they love what they do, they should possess an appetite for risk taking and innovation. Sometimes, this part can play an even more important role.

The Good Engineer is someone who is excited by things they do not know.

They share some of these abilities:

  • The ability to step forward without letting over-thinking and over-analysis bite you - to not get distracted and mired by obstacles
  • The ability to iterate code, quickly - a bias for action that is scalable and proves to be so, over time, as opposed to quick-fixes
  • The ability to produce nice-to-read and debuggable code
  • The ability to (sometimes) take a deep breath and see the full picture

Basically, hire for ability.

The concept of the "Smartest" Engineer

According to a senior leader in engineering, acting as the CTO in an autonomous vehicle startup:

"I ask them if they have participated in hackathons, and examine their CV closely to see what kind of career moves they have decided on - and if those decisions were progressive, if he or she looked for opportunities to learn and grow. I check if they can handle problems, how would they solve problems to reach solutions."

Many confident managers and leaders make it their goal to hire the smartest people they can.

A good question to ask yourself at the end of the process can be: For this person who is being hired, are they raising or lowering the average bar?

Naturally, it totally makes sense to get someone who can make the team better.

Some smart Software Developers are able to turn complex problems worth a million dollars into simple ones in the thousands. Then, whether or not the problem is able to be solved becomes far less important.

To be an expert in everything is not required.

The concept of the "Knowing-Asking-Learning" Engineer

According to an engineering leader of teams operating in systems reliability, databases, and data engineering, in an Asian "unicorn" technology startup:

"I look for candidates with deep understanding of the tools, technologies or problems that he / she has worked with before; as opposed to someone who just has shallow knowledge. I look for passion and ability to learn, as technology is changing at a greater pace than ever before, we need candidates who can and will keep expanding their knowledge. I look for candidates who can bring something different to the table so that the team can have a diversity of skill set, experiences, points of view and backgrounds."

Knowing, Asking, Learning. This Engineer has a deep understanding of knowing how it's done, understanding exactly why it should be done in this way, as opposed to why it is done in the way it has always been done.

These Good Engineers will ask why, and keep asking why, in order to find out exactly why people use particular technologies, why particular algorithms are being used for this solution, and so on. When they keep exploring this angle, they will eventually know how deeply this solution has been thought through.

If you hire based only on what the Good Engineers know right now, and ask questions like these:

How long have you been coding in Ruby/Python/Golang/Javascript?

Explain how XMLFilter works in Java.

What is the default size of a Java hashmap?

¯\_(ツ)_/¯

Well, please consider asking this instead:

Tell me why you did this.

And keep exploring the "why" angle.

This process takes more effort, as you will be looking for the aptitude (the future potential of the Good Engineer) and not just hiring for the "raw" knowledge of the Good Engineer.

As technologies evolve over time, months or years down the road, Good Engineers may be working on ideas that have never existed before in humankind, just because they are always interested in building such exciting things.

Only having knowledge does not make one a Good Software Developer - isn't that true?

The recipe so far

Software developer

So far, we've explored the concepts behind hiring these archetypes:

  • The 100% technical fit Good Engineer vs. The Good Engineer in love
  • The Smartest Engineer
  • The Knowing-Asking-Learning Engineer

Experience + coding ability + knowledge + "more than knowledge" + love. Could this be the equation?

Getting Good Engineers into your team is critical to your success. It also takes time, effort, teamwork, and having a good plan.

The Good Engineer you hire will eventually end up being 5x or 10x more productive in your existing environment.

It is important to start off with the right concepts. If your first few hires are not Good Engineers, you may eventually end up with a team of 100 Not-So-Good Engineers.

But that's a story for another post.

Good Engineers are able to debug problems better, think of superior solutions, understand a program faster, and assess potential impact and implications quicker. They also will be likely to write bug-free code, consistently.

Overall, they will help us to figure out how to make others in the team better Engineers.

Programming = Problem Solving

And now, it is decision-making time.

I contributed to this article in my personal capacity and the views expressed are my own and do not represent the views of the organization I work for.

Names of people interviewed are omitted to retain confidentiality.

Inspired? Go one step further and find your next star engineer on our marketplace now. Sign up for 100offer here:

100offer

6bf31e9cb601421baa17bec64d8f9b231493003897 80x80
Rachel Lee
Rachel is a travel and street photography enthusiast who also does really good talent acquisition, scaling teams for fast growing technology startups. She is currently serving Grab's Engineering teams in Regional Tech. Like her photos on Instagram @rachelminnlee, or drop her an email at spiritedly@gmail.com.
Comments
1 comment
中国,宁波,设计
25-Jun-2017 08:04
erery article is good for me, I can read them to improve my english