If you are a developer, you will likely relate to what I am about to say
When you are applying for a developer position, the trials and tribulations you have to go through are strenuous, to say the least. From sending in your resume, to the numerous stages of the interviewing process, to the fact that you may never hear why you got rejected. You might think that I am exaggerating and trying to make it seem like developers have the hardest jobs on the planet (which I’m not), but I implore you to try a developer’s shoes on for size, go through the gauntlet, and then come back and tell me if you don’t feel the same way.
An example of an interviewing process for a developer goes something like this:
- The first phone call
- A number of on-site interviews (ranges widely, but has a minimum of two)
- A take-home assignment
- A HR interview
- A social interaction/aptitude test
This might not seem that rigorous, but it is something every candidate has to go through, no matter which company they are interviewing at, and it can take several weeks, if not months, to complete (assuming you progress).
This reality really bothered me, and I found myself asking these questions:
- Why is the process like this?
- Is there any possibility for it to change?
I’ll try to answer these questions in this article, but first, let’s have a thought experiment and examine the interviewing process in other occupations.
We’re going to take any other job out there (it doesn’t have to require a college degree) and go over the hiring process a candidate has to go through. First up, construction.
If I wanted to become a construction worker, as long as I am able-bodied and willing to work, there are no other qualifications I need to pass before I get the job. This is in complete contrast to the dangers and hazards of the job itself: working with tools, operating heavy machinery, and the obvious, altitude.
Our second choice would be a waiter. Here we have a job that requires multitasking, staying on your feet for the better part of the day, and dealing with people. And what is the interviewing process you go through? That’s right, a simple meeting with one of the managers of the restaurant.
If I ditched the two previous jobs and opted to work as a cab driver, all I need to have is a valid driver's license to be able to work. This job has the stress of working with people (other drivers) and passengers, memorizing routes, and utilizing opportunities, whether they are on the road or in fares.
You might be saying, “Sure, all those jobs don’t require that much in terms of qualifications, but the pay isn’t even close to that of a developer.”
While true, these examples prove a point and show the stark contrast between the interviewing process a developer has to go through. While this can’t be said of all developers, it does apply to most: A developer’s job does not have the risks or difficulties the jobs detailed above do.
The main concern a developer has is to increase the profit for the company they’re working for. So why does a developer have to go through the wringer just to get hired?
The Long Climb
The process a developer has to go through, be it with professional experience or not, is quite drastic. It all starts with the resume. Each resume gets profiled in about 20–30 seconds, deciding the fate of the applicant before even talking to them. As a candidate, you have a finite amount of influence just getting your foot in the door. There are also all these little gotchas that candidates don’t realize.
For instance, fresh graduates tend to list all the coding languages they have had experience with (ranging from little to more than a little). They put those in their resume since they don’t have any professional experience. What happens on the other end is that interviewers see this and are enticed to bombard the candidate with in-depth questions about those specific languages — when, in fact, those candidates, hardly have sufficient knowledge about them.
Assuming your resume wasn’t thrown in the trash, you will get a phone call from a HR recruiter. This phone call is usually about getting to know you, your skills, and the job you are looking for, and to give a brief explanation of the company and the position. Some companies also utilize this phone call for a phone screening, technical interview. Meaning, that the first, non-physical, discussion you have with the company is already a test you need to pass in order to advance in the process.
How grueling is that?
The on-site technical interview is something that does not exist in any other industry. You are faced with inhabiting a small, clear-glassed room for the span of a couple of hours, where one to two strangers test your knowledge. This can be with actual coding on a laptop, writing on a whiteboard, and physically writing code on a sheet of paper.
No two interviews are alike, and there is no set of defined rules that interviewers adhere to. These types of interviews are not your ordinary Q&A, where they ask about past experience and how you handled certain situations. You can be asked absolutely anything that the interviewer thinks is relevant. Each time you pass a technical interview, you are “awarded” with another technical interview, but this time with more senior personnel in the company.
The HR interview is sometimes titled a culture fit interview. This bizarre term tries to suggest that you will be asked questions to assess if you are a candidate who aligns with the company’s social code — which for all intents and purposes, is only there to attract candidates. You may be familiar with some of these: Work/life balance, performance savvy, etc. This interview will include a variety of social questions and problems, and in most cases, there is no correct answer to them.
For example, when asked what your disadvantages are, you can’t respond with an answer that, while true in another context, might not seem that awful. So you find yourself saying phrases like:
- “I work too hard.”
- “I never give up on a task.”
- “I’m a perfectionist.”
These answers are obviously a ruse in this psychological game we developers play with HR. If you act like yourself in these interviews, chances are you won’t get the job.
You’ve made it all the way; you cleared the technical interviews, and you managed to play the game with the HR. But wait! There is still one more step to climb on this ladder. You need to provide recommendations from previous companies you worked at.
To me, this is flabbergasting.
At this point in the process, you managed to convince all the people you met in the company that you are the right person for the job. Why in the world would they want to talk to someone who:
- They don’t know
- Might not have the greatest recollection of how you performed
- Might not give them the answers they want
- Might be a friend you persuaded to pretend to be a past employer
In today’s era, this phase is the most perplexing to me. What if you ended things on bad terms in your previous company? What if the company shut down? And sometimes, just one recommendation is not enough.
How can one person’s judgement be the deciding factor in your hiring process?
Just Another Cog in the Machine
Why is the process modeled like this? What are the reasons to support making people go through this arduous process?
Part of this is due to the fact that there are companies in this field of business that have a name to uphold and can handle creating a high enough bar for candidates. They will always have people knocking on their door, so they use this system to filter people out.
Other times, it’s more of a smorgasbord of best practices combined with something someone in the company likes to ask or do. There’s no real validity there, but just a general feeling that it works. Combine that with HR teams that do not understand what to ask candidates and profile them in the wrong way, and you start seeing the bigger picture of how interviews are shaped.
At the bottom line, companies need developers, but even if the position open has not been filled for half a year, the company will still behave like the demand for the position far outweighs the supply. Even more astounding is the fact, that according to this article, companies tend to be very picky when they hire developers.
The way out
As a developer, I am deeply unsettled by all of this and have had my share of stressful and tedious job interviews. While I understand the need to find quality candidates, I do not understand the need for this rollercoaster of a process. I’ve had job interviews that had more than seven phases, and I’ve had interviews where there were very few. How did both processes manage to assess my skills for the position that was open?
What I would like to see is a process that balances the needs of the company with the needs of the developer. Neither of the sides benefit from a slow, long process. Since as it takes more time, it costs more money to the company. And on the other side, many developers tend to jump at the offer they have in their hand, instead of waiting for another process that may or may not end in the near future.