Learn more about the ideal qualities to look for in a software engineer.
So your business is expanding. You've found more clients and customers in need of your products or services, and the growth has become exponential. At first, production was able to keep up with demand, but eventually, that demand shot through the roof and you found yourself unable to meet the needs of purchasers.
Your website couldn't handle the traffic, or that newfound customer base reached out to say your site was out of date. Your backend was tragically under efficient, and your supply chain broke at the software level.
What do you do? If all of what ails you points to software issues, you do the only thing that might solve your woes – you hire software developers.
Thing is (at least at the moment), we're struggling through a pandemic, so hiring new employees can be challenging.
It doesn't have to be that way, though. There are always routes to success. You could turn to teleconference options, or you could look to a third party (such as BairesDev) to recruit software developers and hire development teams.
Once you get beyond the how, you must turn to the who – as in, who do you hire.
This can be a tough question to answer, especially for those who aren't involved in the realm of software development. You might understand how to hire the perfect middle manager, a chief operating officer, or an employee, but software developers are a different breed altogether.
When you ask that cliche question, "What is your best and worst quality?" inevitably you're going to hear, "I'm a perfectionist." That's all fine and good (whether it's true is hard to say in a single meeting). But when the rubber meets the road, a true perfectionist can be a hindrance to your company's agility.
The problem with true perfectionists is that their quest for perfection can often get in the way of them actually getting things done. They'll write a single line of code, and if it's not the most elegant, perfect entry, they'll toil over it for hours until it is.
Instead, look for pragmatic perfectionists: those who get the practical application of perfectionism. To them, a single line of perfect code takes a back seat to an application, as a whole, working exactly as designed. Instead of an ideal line of code, the pragmatic perfectionist shoots for code that executes with zero bugs and errors. That's the kind of perfectionist you want in your company.
Of course, once the app works as desired, there's no reason that said software engineer couldn't go back and perfect every line of code, so long as it doesn't change how the app/service functions.
How many software engineers have you seen depicted on television who had the nastiest, most negative outlook? Think of Gilfoyle on "Silicon Valley." That man lived his life to cut down everyone around him and deflate the dreams of those in his path. He was a brilliant developer, but not so much a brilliant human being.
Of course, you want Gilfoyle-level development skills, but you don't want the negative baggage that goes along with it.
Instead, you want to hire software engineers with a positive outlook. These types of developers won't spend their time sucking away the energy of their fellow employees and throw everyone's mood into a tailspin.
At the opposite end of the spectrum, you don't want to necessarily hire a Pollyanna, as that choice could wind up annoying the rest of your development team to such a degree they leave.
Be on the lookout for someone with a positive attitude who doesn't tip over into the awkward, where anything and everything is considered positive. You want someone who cares about the product you deliver, believes in the process and knows they can get the job done.
This is another stereotype that plagues software developers, that of the poor communicators. Yes, that stereotype exists, but it's not the majority. And even though that person might not represent a large fraction of developers, there are a lot of software engineers out there who can just barely get by with communication.
But don't worry, not every software developer falls into either stereotype. In fact, many engineers are outstanding communicators who are perfectly capable of not only communicating, but do so with grace and eloquence.
You should consider good communication skills an absolute must when searching for the perfect software engineer. Without the ability to communicate well, those software engineers can’t be team players, and you know where that leads.
Debuggers and fixers
This is one issue you might come across, especially when hiring a superstar engineer. There are some developers who refuse to debug or fix their code. As far as they are concerned, their code is perfect (see a theme here?) and the acts of debugging and bug-fixing are beneath them.
You don't want that type of engineer on your team. You want someone willing to get their fingers "dirty" and willing to admit their first crack might have problems. On top of which, if you have a developer who refuses to debug their code, they'd have to pass the code off to someone else who will then have to familiarize themselves with said code, which isn’t an efficient pipeline for success.
When you're interviewing possible candidates, make sure to ask the question, "Are you willing to debug and bugfix?" If the answer is "no," move on to the next interview.
Knowledge of the industry
Sometimes software engineers can suffer under the weight of a narrow scope of familiarity. They know how to code and not much more. They've spent considerable time and effort learning their trade, and they're on top of their game. But while they work with blinders on, technology has advanced and evolved.
You need developers with a keen understanding of the industry. They know the trends, understand why things have evolved and where they are going. Without such knowledge, software engineers can find themselves designing and programming for the past. You need programmers who design for now and the future. In order to do that, those engineers must have a solid knowledge of the tech industry. They need to have a sound understanding of the technology that drives businesses, such as the cloud, containers and DevOps.
Like with any job in technology, time can get away from you. You could have your head buried in code and completely miss the fact that eight hours have passed. During that time, you've missed meetings, deadlines and lunch.
Time management is a tricky skill because when you're buried in a difficult task, the relativistic nature of time seems to change. With every level of difficulty, time seems to pass faster and faster. Or so goes the excuse.
You need to hire employees that are capable of managing time. This is especially true of software engineers who tend to work isolated and alone. Without the ability to manage time on their own, management will wind up having to babysit those developers to keep them on track.
You don't want that.
A love of code
Finally, you need to be looking for developers who absolutely love to code. Software development can be a very tedious task: typing thousands upon thousands of lines of code can not only be taxing on the eyes and brain, but it can also seriously challenge anyone's attention span and sanity.
But when you truly love to code, none of that matters. To those who love to code, there's an art to their job, it's the very heart of what defines them.
You want to hire developers who truly love to code. Remember the old adage, "If you love what you do, you'll never work a day in your life."
In the end, the most important thing you have in the hiring of new developers is your instinct. Follow it. Make sure candidates fall into (at least) some of these categories. When you've narrowed down the list, turn your search inward and follow your gut.