Recently, I’ve noticed that companies hire a lot nowdays, and most of them fail at it, because chances are they’ll end up hiring the wrong people for the job. Some of them also fail at managing expectations which can end up frustrating both the Managers and the newly-hired.
The first fallacy starts when employers don’t know what they are looking for, which is either an Engineer or a Developer. This looks like the same thing, but it’s not. They are two very distinct roles. I’ll explain you my view on both roles:
Developer - Typically a highly skilled programmer that specializes in one or more programming languages and knows all the caveats, tricks and workarounds to implementation. In other words, and please don’t take this the wrong way, a “code monkey”.
Engineer - An engineer knows Computer Science, knows how a CPU works internally and above all, designs the solution in paper before implementing it. They aren’t necessarily specialized in a Programming Language, but know enough to know its Pros and Cons when architecting a solution and know how to leverage those languages. Typically an Engineer can quickly get up to speed when learning a new language.
Why am I explaining this? And this is for most HR people that do screenings. An Engineer telling you that doesn’t know, for example, Rust Language, is not necessarily a bad hire. If he knows Computer Science in general, he will quickly catch up and be productive in a couple of months and deliver a lot of value for your company.
How to find out which type of professional you’re interviewing?
Simple, do a proper tech screening.
Don’t get me wrong, but most of the recruitment processes I see out there, use HackerRank Tech Challenges for this part. It’s not necessarily bad, but you need to complement this with more stuff. HackerRank will tell you if the candidate knows how to code (He’s a Developer). If after this you will most likely do a Tech Challenge Review and ask the candidate why he has taken the decisions he took, and after that, he’s hired.
Where the process falls short
Typically the Coding Challenge phase is very time-limited and in my opinion is not enough to tell in the Long-term if it’s a good fit or not. So this can go both ways, you can hire the person and not match your expectations or you may be dismissing a good fit. This is why the approach that i suggest partially eliminates this doubt (i never said completely!).
Let me suggest a different approach. Before the Tech Challenge, have someone from the Engineering Team have a tech conversation or ensure you have in your team a more Technical Recruiter. During this conversation and before the challenge, you’ll be able to tell in what category the candidate falls in. Talk about things you like in tech and about Computer Science and especially about Software Architecture. Zero Code, just talk! After this, the next step (coding challenge) will give you the notion of how long his learning curve will be, but most likely, it will be short.
Most programming languages are derived from C and C++, and those two derived from Assembly (The closest to CPU native code programming). If he knows both and knows Computer Science, it’s most likely a good hire.
But one thing is crucial for you as a company, make sure that you know what you want, because if you’re going to hire an Engineer and not use his “brain cells”, and try to make him a Developer, it will end in frustration for both parts and it will go bad for both of you. The last thing you’ll want is a frustrated employee. Again, like I said in the beginning of this article, manage expectations and make sure that you know what type of person you want to hire.
One last piece of advice, do not try to automate the process of hiring a Human Engineer. I wrote Human to emphasize that we’re all humans and this process will go a lot smoother when both Interviewer and Interviewee communicate. Lately I’m seeing too many hiring processes relying almost exclusively on Hackerrank-like Coding Challenges. This will only tell you a small fraction of what you want to know, if the candidate knows how to implement algorithms.
Statistically the candidates that perform the best in coding challenges are fresh out-of-university ones. If you’re looking to hire a Senior Developer or Engineer, I suggest you focus on Tech Screening instead of Coding Challenges.