Looking for a new job is stressful and hard. Either you have to perform this in secret so that your current employer doesn’t know you’re going to leave or you’re under the gun because you’re unemployed and need a paycheck coming in again soon. No matter your situation, finding a development job will be a lot like going back to school. You will have to research and study, answer pop quizzes, timed online tests, and take home exams. To get that far you will need to make a resume that stands out to both people and automated scanners and write an essay (cover letter) to ensure each potential employer that you are the best one for the job and you really, really are passionate about their product which you probably didn’t know existed until you saw them on Indeed or Glassdoor ten minutes ago. I’m not here to give advice about how to write a resume or interview. This is a critique of the technology industry’s hiring practices.
First let’s start with timed online coding tests. Will these tests ensure you get a good candidate? Maybe. Will these tests cause you to pass on an equally good candidate? Probably. I recently scored a 100% on a timed online programming challenge through TestDome. However, I was 90 seconds away from scoring a 76%. With the clock ticking and me sweating bullets I found a one line tweak that allowed my code to pass all the tests? Unless you’re trying to land a plane with your code it is rare that spending an extra five minutes to get your code completed correctly will make a difference to you. There were two reasons this test was down to the wire. I finished two sections quickly, however, the allotted time I had for these did not carry over to the third. The wording of the third challenge was unclear and there was nobody to ask. Coding like this does not mimic how you would actually code in your job at all. You will almost always be able to ask questions of your business analyst or product team if you don’t understand what is asked of you. Also, deadlines for code are known weeks or months in advance not hours or minutes.
Even worse than online coding tests are general aptitude tests. Laszlo Bock, a senior vice president at Google wrote for Wired Magazine about how cognitive ability, while an important predictor of success yet is difficult to accurately test without introducing bias. One such biased test that I was asked to take was administered through Criteria Pre-Employment Testing. This test asked personality questions like, “Do you like waiting to the last minute to get your work done?” I finally made it to the skills section and was given a sample Windows environment where I had to demonstrate I knew how to open a file and save it in a folder. At this point I gave up and cancelled my interview. Companies need to remember that both parties are trying to find a good match and that unnecessary hoops will filter out the most capable and experienced employees just as much as it will filter out those that can’t do the job.
A bias many employers have is towards developers that have lots of code publicly available on GitHub. I understand the appeal of getting to see what a potential employee can create but this greatly limits the pool of qualified candidates. If you’re like me you and have spent 17 years working on a proprietary system you just don’t have the time to keep up with an extra showcase project. Yet, this has nothing to do with whether or not I can do the job.
So, what works? How does an employer know they’re getting a qualified candidate without scaring away the most talented employees? My new employer used a reasonable and basic at home programming task. This task was basic enough that I didn’t need to spend hours getting a new environment set up but was challenging enough that it took around 30 minutes to complete and probably would have taken less experienced developers closer to an hour. Many employers overdo it with the take home challenges. I have been given challenges that entailed creating an entire system and would need a day or two to finish correctly. Just like the company with the personality test I quickly withdrew my application. In the case where it worked well the hiring manager went over the task with me and made sure I understood what was being asked. This was a good sign for me since it gave me a good insight of what type of boss he would make and allowed me to give a good impression based upon the type of work I produce.
So, all in all the technology industry needs to recognize the burden that is put on job candidates so that the hiring process can focus on making a good match between employee and employer and as quickly and easily as possible.