Learn what a developer goes through on every job search
If you are a developer, then you will 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 don’t), but I implore you to try on 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:
This might not seem that rigorous, but it is something every candidate has to go through, no matter which company he/she is 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:
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, 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 is 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 license in order 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 in 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, but 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 he/she is working for
So why, does a developer have to go through the wringer just to get hired?
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 him/her. 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, the job you are looking for and a brief explanation about 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 onsite technical interviews are 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 one interview is alike and there is no set of defined rules which 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 that aligns with the company’s social code. Which for all terms 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 are your disadvantages?”, 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 :
These answers are obviously a rouse 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 that:
In today’s era, this phase is the most perplexing to me. What if you ended things in 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?
So, 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 a wrong way, and you start seeing the bigger picture of how interviews are shaped into.
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.
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 roller coaster of a process. I’ve had job interviews that had more than 7 phases and I’ve had interviews where there were very few. How did both processes manage to assess my skills for the position open?
What I would like to see is a process that balances the needs of the company with the needs of the developer. No side benefits from a slow, long process as it takes more time, thus costing 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.