Working in a technology company brings many challenges. Depending on where you are in the chain of command, you could deal with bad clients, tight deadlines, complexity of working remote, or maybe constant interruptions and context switching.
All real problems. And all difficult to work through. But they pale in comparison to hiring developers. It’s extremely difficult. This is why whiteboard exercises and programming puzzles are so common. This is the best that we have come up with to evaluate skill.
It’s difficult to know if a developer has the skills to do the job. And add in the fact that the need for more software developers has flooded the market with junior developers, and you have an all new problem.
I’ve dealt with this issue plenty. Aside from being interviewed and totally bombing on programming puzzles, I’ve lead interview efforts where I need to make a determination on whether a candidate is a good fit.
A different set of symptoms based on experience, but the problem is the same. How do you know if you are hiring a good developer?
That’s the wrong question. Instead of asking if you are hiring a good developer, ask if you are hiring a good person. Here’s my bold claim.
It’s not difficult to make a good person a good developer. It’s nearly impossible to make a bad person a good person.
Some good developers are just bad people. They are difficult to work with, constantly fighting, make immoral decisions, and just generally don’t care about other people.
Their technical skills fade quickly. Their coworkers soon decide that they don’t care how smart they are, they just don’t want to be around this brilliant developer that’s a jerk.
So how do you find a developer that is good enough to mentor, teach, and help develop them into a great software developer? Look passed the skills. Don’t worry about programming languages or frameworks. Look at who they are. What they care about. How they treat other people.
If the fundamentals of programming are there; syntax, frameworks, and all the other stuff that your company may need are acquired easily. All that stuff is just an abstraction on top of programmer thinking.
When you are looking for a developer for your team, look at character. Ask them what problems they want to solve? If they can’t answer that question, ask another leading question to see if they care about more than just themselves.
If all they care about is money, run. These people just miss too many attributes to be great developers.
People over code.