Tech hiring is broken.
Here's my take on it.
I am an interviewer, I've applied for jobs and noticed the same problem on both sides. Tech hiring is bound to the traditional hiring style, but the work requires a different skill set.
As coders, we do not only use math, language or creativity, but need to orchestrate all those. We create solutions based on the hard limits that humans impose. We represent the world and tell machines how to understand it.
In our day to day work, it's more important to communicate effectively than to be the greatest coder. Understanding problems is more important than crafting perfect solutions. This is hard to measure.
The usual interview process has 4 parts:
- An initial approach to see if the candidate would accept.
- A cultural test, which is subjective.
- A technical interview.
- An offer.
I've mentioned before how LinkedIn has become reverse Tinder for developers (good looking girls chasing nerdy guys), but this post is about the Tech Interview.
As an interviewer, I'm asked to fill a form. It has questions about certain technologies that I hadn't heard about 2 years into my career. This form applies to all levels. I may skip questions but nonetheless it’s a requirement that ends in an approving checkbox. I apply a coding interview of one hour that asks the candidate to create a fresh simple app. This task has a lot of stressors that day to day work does not have. I ask the candidate to walk me through the solution, help when I see obvious bugs and allow them to search online. This is not the real workflow.
Few weird ideas on how to do it right that I've only dreamed about:
For a good gauging of a person's impact in an organization I'd take a week shadowing them. Have them work in a real problem, in a real team with a real goal. This means a one week hire and almost instant onboard. Not plausible.
For a quick teamwork test, I'd have them play complicated board games, with possible teammates and other candidates. Thinking in advance, communication, pattern matching, strategy, it all shows.
For the communication part, I'd have them teach a concept to an old person, a kid, a manager and someone outside the industry. This proves they can express themselves in a variety of settings.
For the coding test, I'd use classic problems in pseudocode, without help. You can get insight into their thought process.
This is me, dreaming about how to improve my life and get the best talent. For now, I'll keep on screen sharing code and reading about the newest framework.