One of the most annoying things, when I apply for jobs as a software engineer, is that a lot of companies don’t seem to have figured out how to accurately assess candidates’ competence. Some of them would send me a link to a HackerRank coding challenge and have me solve unnecessarily complex algorithm problems, and others would give me a coding assignment that’d take 3 days to complete. I, personally, despise those lengthy coding assignments.
There was a time when the company I was interviewing for had me complete an assignment, (which took me about 2 days to finish…) and the interviewer asked me about the time complexity of the solution I submitted during the subsequent interview. I initially answered, “I’m not entirely sure…But I think it should be something like O(3^n) because this function is calling itself 3 times ”. Figuring out the time complexity of a recursive function is no easy task. I couldn’t figure it out on the spot. The interviewer subsequently responded with….
“There are 3 loops, so it should be something like O(3N), right?”
Then, I thought to myself “there are no….loops…..?”. He referred to the recursive calls as “loops” and inaccurately estimated the time complexity to be way more efficient than it should be. However, I guess I was the one that incorrectly assessed the time complexity from his perspective. (But really though…? loops?) I joined the company about a month later and found out they were having difficulty hiring because a lot of candidates won’t even work on the coding assignment. They also had trouble retaining engineers because their tech lead whose job title was “senior solution architect” only had 3 years of experience as an engineer and was also a dick to everyone… (Obviously the latter was the primary reason why so many people were leaving every month.)
Then it occurred to me “maybe… most interviewers at startups aren’t experts on algorithmic problems. They are merely imitating FAANG interviews because they don’t know how else to figure out who to hire. They are not working for FAANG companies just like I’m not for a reason.”
What’s the point of spending 2–3 days on a coding assignment only to have your skill level assessed by another engineer who can’t even accurately assess the performance of the submitted solution…? (I can’t either, tbh.)
As Ben Awad articulates how broken coding interviews are in the video, I also do believe that coding interviews are indeed broken. I don’t see a point in inverting a binary tree for them to see if I’m skilled enough as a frontend engineer, either, but at least those algorithm problems he mentions in the video are somewhat consistent across many companies and less time-consuming.
The problem I’m hoping to address here is that by accepting to work on these lengthy coding assignments, we might be promoting this unhealthy interview culture indirectly where the potential employers can take advantage of the power imbalance of the employer/employee relationship and expect you to spend your entire weekend working on a project that they’ll quickly glance through the following Monday.
I have interviewed for positions at a few companies that claim that their coding assignments shouldn’t take more than 3–4 hours, and in a lot of cases, what they said was true. This one company asked me after the interviews how long I took to complete their assignment and told me my answer won’t affect the interview outcome and that they are simply trying to improve the interview efficiency.
We, as engineers, should appreciate such companies and their interview culture where they value candidates’ time and constantly make an extra effort to improve the interview efficiency.
A lot of software engineers spend extra time working on personal projects on the weekend, learning about new technologies and frameworks. We shouldn’t be required to work on company-specific coding assignments that take 4 — 5 days to complete. In hopes of promoting a more efficient interview culture, we should start saying no to those lengthy coding assignments. With a few years of professional experience under your belt, you can definitely find a company that needs your coding expertise and won’t subject you to a day’s worth of free labor.