Tech hiring is something I have wanted to write about for a very long time. I had not done it before today because I was worried it could affect my chances of finding jobs. Do I still feel that way? Yes, but I do not care because I need to say this. Tech hiring is broken and we all need to work to change it.
Anyone in the tech industry has experienced the issues I am going to outline. Many people are willing to just let it go and think this is how it is and nothing can change it. I am here to say that we can change it. Now, I will list out the things I see wrong in tech hiring, in no particular order.
Applications - Recruiters will reach out to candidates or candidates will find open jobs on company websites and LinkedIn and will need to submit their resumes. Next, they will ask us to fill out a web form asking us for all of the same information that is on our resume. Why do I need to waste my time uploading my resume if I am going to enter the exact same information into a form? This is ridiculous. Stop doing this. There is almost always an issue with the web form as well. Terrible scrolling, horrible validation, screwed up formatting; it is almost like the developers creating that form know how terrible it is and are secretly sabotaging it. If this is true, I salute those developers. Maybe we should start asking recruiters to fill out a form with answers to questions after they have already verbally answered those same exact questions.
Take-home projects/Coding assignments - I despise these coding assignments. I know some of you are probably asking 'How else will we know they know how to write code?' and this is a valid question. If the candidate is brand new to the industry, maybe a coding assignment makes sense. If the candidate has industry experience, let's say more than a year or two of continuous employment at the same company, it is safe to say they can write code. No company is going to keep a developer employed for a year or two if they cannot write code. If you absolutely must give a candidate a coding assignment you need to make sure it is properly sized. I have had companies send me a coding assignment, give me 4 or 5 days to complete it, and tell me it should not take me more than 20 hours to complete. Get the hell out of here with that crap. Do you want me to spend 20 hours on a coding assignment? OK, well let me share my hourly contractor rates with you. I expect 50% payment before I begin and the remaining 50% after completion. A coding assignment should be 2-4 hours max, but even better is not giving these horrible assignments.
Whiteboarding/Interview coding challenges - I am also not a fan of whiteboarding as it is done during most interviews. Most interviews I have been in require you to write code during the whiteboarding. I have even had some interviewers syntax checking the code that I wrote on a whiteboard with a damn dry-erase marker. I am all for using a whiteboard to have a candidate demonstrate the way they approach a problem. I tell them they can use pseudocode and not to worry too much about syntax. I tell them to think out loud. I am not necessarily looking to see if they can solve the problem, but how they approach solving the problem. Interviews are full of pressure and they are usually somewhat short so solving a complex problem might not be possible. Speaking of complex problems, stop getting candidates to do algorithm problems. "Please use this whiteboard to write a sorting algorithm that is the most efficient to sort this array. Make sure your syntax is 100% correct as well because I am one of those interviewers." This is dumb! Interviews are supposed to see if a candidate could be a fit in your company for the role. Let's say you hire the person that wrote a perfect syntax selection sort algorithm and you are now reviewing their very first PR at the company and part of the PR was to sort an array before performing some other actions on the data. While reviewing this PR you notice the developer wrote their very own sorting function in C# instead of using the built-in Sort(). You are almost certainly going to comment that they should not be reinventing the wheel. If you do not expect them to do it in the real world then stop asking them to do it in an interview. A problem that I often ask candidates to try and solve during interviews requires the candidate to sort an array as a first step. I love it when a candidate asks me if they can use a built-in sort function or if they need to write their own. Of course, you can use a built-in sorting function. That is something that is available to developers so why not use it? I understand there are always exceptions to this as it depends on the role and the language being used in the role. We, interviewers, need to do better. We must do better.
Interview length - Step 1 is a 30-minute call with the recruiter. Step 2 involves an hour meeting with the hiring manager. The final step in the interview process is two days of interviews with various team members doing various whiteboard coding challenges alternating with team fit questions to see if you will fit in with the rest of the company, for 4-6 hours per day. If you make it this far the final-final step is a short 20-hour coding assignment. You can see that this process is very simple. It will only last about 4 days, but don't worry as those days will be spread across an entire month. You will spend no more than 35 total hours proving your worth. You will be expected to do all of the interviews in a nice suit and you are forbidden from using Google to research anything for the coding challenges and assignments. This bullshit absolutely has to stop. Many people interviewing already have jobs so they do not have time for this crap. Even if they have the time they should still not be doing this. I have hired at least 20 people in the past 2 years and, I believe, all but one are still at my company and all are exceeding at their jobs. The one that left had nothing to do with performance. The interviews are a total of 2-3 hours, all on the same day. Maybe if I hired 1 or 2 you could say this was luck, but 20+ people are not luck. If I can do it so can you. Now you might be saying that it is a company policy that interviews have to be this outrageous. If you are involved in the interviewing process there is a good chance you are in a senior or leadership-type of role where you can make your voice heard. Tell people that this process is terrible and needs to change. We need to be the change. We cannot wait for others to change things and hope they change it for the better.
Ghosting - Ghosting is when the recruiters fail to follow up with candidates or take a very long time to follow up. I understand that sometimes the recruiters are waiting for the hiring manager or the interviewers to get back to them with their thoughts. If this happens, just send the candidate a quick email or text message that says you are waiting to hear from the hiring manager. It takes seconds for you to do, but can mean a lot to the candidate. If the candidate did not make it past the final selection for the role, tell them. Even better, tell them why. Ghosting also happens in initial conversations with recruiters. I have had countless recruiters ask to have a quick call with me and we set up a time. I rearrange my schedule to make that time work and then the recruiter fails to call me. Sometimes I will get a message 10 minutes after the time the call was supposed to happen to say they had another meeting and maybe we could talk at the same time tomorrow. Sometimes I will not get that message until many hours later, and sometimes not for days. This is 100% unacceptable. Years ago I would let this slide, but not anymore. I am worth more than that and I will not accept that type of disrespect. If a real emergency came up I will understand, but I know emergencies are not happening 60% of the time. This is the rate of recruiter ghosting I have encountered for initial screening calls. This is a surefire way to get blacklisted with me. If you cannot respect me or my time then I want absolutely nothing to do with you or with your company. I will say this happens way more often with recruiting agencies than it does with recruiters working for the company that has the job opening.
Those of us in technology leadership positions have the power to change this horrible process. We have all experienced it so we should want to change it. We owe it to future generations of developers to make things better. I always try to leave things better than I found them. Will you join me in trying to improve the tech hiring process or will you just sit silently afraid to challenge the status quo?