Do you resent wasting your time with coding challenges?
Keep calm and say that you have decided to stop doing them.
Companies have their processes and dealbreakers. Since the hiring process is a two-way street, you are entitled to have your own dealbreakers.
UPDATE: What do I mean here by coding challenge?
My article has been grilled by ThePrimeAgen on YouTube. And that was a great honor.
![jmfayard](https://res.cloudinary.com/practicaldev/image/fetch/s--8PzPESdJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://media.dev.to/cdn-cgi/image/width%3D150%2Cheight%3D150%2Cfit%3Dcover%2Cgravity%3Dauto%2Cformat%3Dauto/https%253A%252F%252Fdev-to-uploads.s3.amazonaws.com%252Fuploads%252Fuser%252Fprofile_image%252F17066%252F8152404c-3de2-4be3-8554-7b80c1b4823e.jpeg)
Coding Challenges, I mean Take Home Challenges, Are Bad
Jean-Michel π΅π»ββοΈ Fayard γ» Apr 28 '23
But I realized I introduced a confusion by not defining the term. I am not talking about all kinds of challenges that involve coding. I am not talking about algorithmic challenges like ThePrimeAgen thought. I am talking about that kind of coding challenges:
Your Coding Challenge: We are a music player app company, so we challenge you to do a simplified music player app, with a lying time estimate of four hours, and then we will evaluate the quality of your code according to unknown criteria.
π€― I'm allowed to do that? How?
There is a completely underrated tool in job hunting. Not it's not an app, and no, it's not ChatGPT. Here is the secret:
π Talk with the recruiter that makes the first phone call π
I know that you feel the urge to skip that part and talk as fast as possible to someone that understands that vim is better than Emacs. (Obviously, the reverse is true).
But skipping that urge is worth its weight in gold.
Because you can use this opportunity to, for example, avoid code challenges. What you do is that you get to know each other and the company, then wait for that moment :
*So that was in summary who we are as a company, and what we are looking for. Do you have any questions?
And indeed, you have questions:
Hello yes, can you describe your recruiting process?
Which steps would I go through if everything works fine?
She will be happy to oblige.
Maybe you will need to ask for more precision
You mention there will be a technical evaluation. How would that go? Is that more like a technical discussion? Or a coding challenge to do at home?
Then you hear either:
No we don't do coding challenges. We have found they waste too much time for our candidates, and there are other ways to evaluate their technical skills.
Then all fine, you have avoided a coding challenge.
Or you hear
Yes indeed, there will be a coding challenge that consists in this and this.
That's the crucial moment where you breathe, you stay polite and calm and you say:
Thank you for clarifying that. Well, I have to be transparent with you, I had bad experiences in the past with coding challenges and I have decided to stop accepting them.
Just like that.
What happens next?
π Worst Case Scenario: an uncomfortable conversation
The conversation could become uncomfortable.
Recruiting is a hard job to do well, and just like programming, requires training and practice. Unfortunately, too much people are doing recruitment without having been through enough recruiting training. One dude was mad at me and told me how difficult programmers are, etc.
If that happens, breathe and do your best to stay calm. You have probably dodged a bullet, and you have kept and improved your self-respect. That's what matters most.
π π» "I understand. Well, no deal then"
It's more likely though that the recruiter says something like "Well, I can understand. Now from our side, we have our processes, so I guess it's a dealbreaker".
That's expected and that's fine. They have their company processes and rules. You have, starting today, your candidate processes and rules, the first rule being that you don't do coding challenges.
By failing early, you have won something important.
You have won time to find other companies that waste less of your time
You have lost one lead where you may have invested 12 or 24 hours in a coding challenge. And I have personally heard about much more, you wouldn't believe it.
During those 12 or 24 hours you can get in touch with way more than one company.
That may feel out of reach if that one company is the only one that replied after you send tons of CVs. Then you have another issue, you need to become better at finding companies. That's a topic for another day, but that starts with actually understanding how hiring works from multiple points of view. Which was the subject of my last article
![jmfayard](https://res.cloudinary.com/practicaldev/image/fetch/s--8PzPESdJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://media.dev.to/cdn-cgi/image/width%3D150%2Cheight%3D150%2Cfit%3Dcover%2Cgravity%3Dauto%2Cformat%3Dauto/https%253A%252F%252Fdev-to-uploads.s3.amazonaws.com%252Fuploads%252Fuser%252Fprofile_image%252F17066%252F8152404c-3de2-4be3-8554-7b80c1b4823e.jpeg)
Job Hunting: Just Submit Your CV and Hope for the Best?
Jean-Michel π΅π»ββοΈ Fayard γ» Apr 17 '23
That scenario doesn't sound too bad for me?
But there is more.
ππ» The best recruiters want to understand your concerns
Does it sound too good to be true?
No, not at all, that's just the way it works.
For the best recruiters, your interests and theirs are actually quite well aligned. Because they are, of course, interested in convincing, not only you, but the candidates after you, to work with them. And the best way to do that is to... actually shape a candidate experience people will want to go through.
Nobody is perfect so she might have accepted from their hierarchies that there must be this coding challenge thing. They sweared to her, it will only take up to four hours. Now obviously the guy who tried it was the guy who designed the coding challenge so he knew exactly what to do and did indeed complete it in less than 4 hours.
If you tell her that in your experience and in the experience of your friends, that kind of coding challenge takes anything between 8 and 55 hours to actually do, she will listen carefully.
She will talk about it internally.
Alas It's likely that her hiring manager will not listen because many of those, alas, don't respect recruitment.
π Pain is a great teacher
Something that developers who struggle to get a job don't realise is that the reverse is also true, companies struggle to hire developers. Not top companies like Forem. But really, at the average company, developer positions stay vacant for many months.
If the hiring manager, one month after you spoke out, realise that the position is still not being filled, and ask what can be done about it? The good recruiter will bring the candidate pain point to the table once again. Maybe another developer was brave enough to do the same thing as you and explain to her politely why he doesn't like and doesn't do coding challengers anymore. He would have given other arguments and she will use that ammunition to shape things up.
Because, really, it's in everyone's best interest.
π― Not only you have avoided a coding challenge, you have helped others after you to avoid it too.
ππ»Thanks for reading
Please send my article to a friend that needs it, or to that smart recruiter who is ready to listen to your concerns.
Hi, Iβm Jean-Michel Fayard. On my website, I have Careers Resources for Developers, and if that's not enough, you can ask me a question.
Top comments (72)
Approaches like this are another important step towards a more professional and proud stance taking ourselves seriously as skilled developers in times of skilled labour shortage. Craftspeople and construction workers have already realized their position, and you won't find a carpenter or thatcher doing free work to get a job. Well, you will, when some are obliged to do an internship / induction year, but can you imagine a senior carpenter getting an assignment to build a cupboard and send it to an potential employer for free within a few days?
Yeah, imagine hiring a lawyer and trying to evaluate how well he remembers all those latin expressions he learned at school.
Why are we assuming that people are both incompetent and lying until proved otherwise?
As far as I know, aspiring lawyers and doctors are thoroughly tested for their theoretical knowledge at least in Germany, instead of getting more practical experience, and while lawyers can expect to earn a lot of money, doctors face lousy working conditions for underpaid hospital jobs. That's why I chose the craftsperson analogy instead.
In Germany, you can start your developer career as an apprentice software developer, getting a lot of practice in a company and going to a vocational college once a week. So they're no academics remote from reality when writing their first application for a junior job. But even as experienced senior developers we seem to be suspects of imposture until proved otherwise, as you said!
Absolutely, I was 6 year in Berlin and got colleagues that went through this system. So young, so talented. Really like it.
As long as that stipulation comes with corresponding payment, both sides should be happy. If someone asks you to do something "for free", you can extract value from it. I think the true issue is that a lot of people say "yes daddy" and do the work without laying out expectation that if hired that they're to be paid accordingly. Sometimes that means you walk away from a lesser offer and sometimes that means you get a raise. You're in control here. If your code and skill set is lackluster, then sure, it's a losing proposition.
I've seen seasoned professional Account Managers asked to make and present a pitch deck as part of the interview process.
I've known accountants be asked to pass various knowledge and accounting tests as part of the interview process.
Hiring a developer takes time and costs money, why would a company not want some reassurance? Especially when the agencies tend to really, really suck at evaluating developers skills.
Having the developer prove themselves, means the hiring company doesn't need to invest as much time in researching the developer. It's easy for you, you're just one person. A company has to wade through a hundred CVs, interview dozens of people, and that takes hours and hours and hours of their time.
They get you to do a test because it's quick and it's easy.
I fully understand companies being like that
and wanting to "optimize" their time by making me waste mine.
The real question is what should I care as a candidate?
There is plenty of fish, I mean tech companies.
What I've done in the past is skip this kind of company,
and work with ones that were better for me.
I don't regret it one bit, one of the best decisions of my life.
You define "a better developer experience" as working for a company that has time to waste researching your history, rather than asking you to do what should, for you, be a simple test? Weird flex, but ok...
Personally, I care about whether or not the company that hires me is agile and efficient. Those companies make money and stay in business.
Bro it's pretty simple : The company has never as much incentive being good to you than during the interview process. That's when they need to convince you come and fill their position vacant since months. And that's when you have the power to leave. If they don't treat you well during that honey moon phase, how will it behave when things get tough?
So yes, that's absolutely a red flag for me.
I'm not trying to convince you, you do what you like, I don't really care.
I have done enough in career I have nothing to prove.
I would agree - EXCEPT - there was a position I interviewed for last week where there was a code challenge. It was basically a Leetcode thing, and the interviewer said that I could Google whatever I needed. I formulated a solution, then double-checked that I was on the right track, and I was - it was just a matter of typing speed. I managed to do everything except get the final console out of the answer(s), and I was denied the job because I didn't finish. Mind you, this all happened in 20 minutes.
I was pissed that I didn't get the job, but then I realized a place like that - valuing raw typing speed? - is a place I do NOT want to work.
But what do HR recruiters get paid for these days then? Do cold calls, match some LinkedIn keywords and forward candidates to the hiring process? Maye the "head hunters" (recruiters) should make an effort and research the candidates' history, GitHub etc.
I think this sums up things pretty well
You'd probably want to see that they know how to do the basics of their job. Code challenges shouldn't be work for clients. The test should be something that demonstrates understanding of the job they are applying for that can be objectively scored and compared to current (and past) applicants.
What I tell developers is to do that work publicly on GitHub as open source. If companies don't value that, there is plenty of fish in the ocean. That open source strategy worked like a charm for me and many others
The two aren't mutually exclusive. You can do the code challenge using git* and send them the repo link.
Good recruiters take the time to analyze the projects you link on your website or your public contributions on GitHub.
This is why it's the very best for even beginners to have small (even tiny), but well crafted projects to show for the public!
Yep
Sometimes it's tough to choose a good project though. Like another Todo MVC?
I can recommend that article from @seattledataguy if you are out of ideas
10 Great Programming Projects to Improve Your Resume and Learn to Program
SeattleDataGuy γ» Aug 12 '19 γ» 8 min read
Agreed. I'm currently creating a mega repo that illustrates that I can do a simple CRUD app in multiple frameworks across multiple languages, both front end and back end. I also have a few repos for mobile development and I'm looking to do additional types of repos for data science, systems programming, and game development, if I ever tap into those fields. Plus adding docker configs and CI configs for devops and cloud computing.
Good post. True, developer positions stay vacant for many months at average companies. The coding challenge is a huge turn off.
Origin of Coding Challenges
There are another reasons why in the first place the coding challenges are.
Some candidates prefer coding challenges that reflect closer their daily work than Leetcode style interview. They are drawn to these type of companies.
However the big reason why coding challenge persist is to save time from the interviewer point of view.
Asymmetry of time
Top companies filter candidates with recruiters first, then a first technical round with a human interviewer. Then more technical, personality interview rounds on-site. Top companies spend a good portion of their resources on recruiting to grow. Here interviewers spend equal time as candidate ( symmetry of time ). Note: the interviewer spend even extra time to write an interview evaluation after.
Did you know why recruiters absolutely like to phone instead of email ?
Because for each minute spent on the phone, he/she is sure you are listening . Again symmetry of time.
While a 2h long well crafted email with background research by the recruiter can be read ( even worse ignored ) by the candidate in a few minutes. Again asymmetry of time.
Average or normal companies spend much less portion of their time on recruiting. You recognize them because the developer positions stay vacant for long.
Since recruiters send almost everyone to technical interviews. These interviewers are fed up, then someone got the idea to resolve a coding challenge that reflects a problem faced. Now recruiters has to give everyone a coding challenge. The author often didn't even code a solution to his/her challenge. That's where the time budget and scope go beyond.
These companies don't care about wasting candidates hours, days, weeks. On the other side, reviewers may spend a few minutes to evaluate. There is really an asymmetry here.
I don't believe the lie that reviewers spend hours to evaluate a coding project due to the lack of feedback. They should rather spend this time to talk with a human candidate.
Most recruiters are secretive about the conversion funnel "how many delivered the challenge" / "how many received". How to increase this ratio ?
What if
Let 's say you were paid a fixed amount to complete the coding challenge. Would you accept the coding challenge ?
Yes, candidates get paid to submit their project. After all, a few companies pay the candidate travel fee ( + hotel ) to interview on-site.
On the other hand, companies with unfilled long vacancies are suddenly more attractive to job candidates. Once the company paid for a challenge, the evaluators will feel the pressure to evaluate correctly.
So it is a win-win situation.
If you want to know more, I created this surveyΒ . Thanks for those answering. Or MP me.
Holy shit, thanks a lot for your comment.
Actually "comment" is an understatement,
you wrote almost an article that would stand on this own right.
I'm curious about this approach, will try your link
Yes you are right. Exactly I do the same.
I never hired with coding challenges or homework app.
if they ask me to learn another programming language or framework, I ask them for more money for additional learning and work at the same time. they are surprised and ask me if I shouldn't work for a lower salary since I don't know what they are looking for. the answer is simple. I don't want to learn something new and I'm not sure if I'll get a job, how long I'll work there and when I know I'll never need it again. you must be prepared to pay me separately for training and plus my work. because along with learning, I also finish reading for you. I add new value to the product.
I mostly apply for jobs through referrals
Exactly right. I will have to explain how to apply through referrals in another article.
I didn't read all the comments, so it might have been mentioned before:
Like you wrote in one of the other parts: programming is rarely an isolated activity anymore, but almost always done within a team.
With that perspective I'd rather hire someone great at collaboration and perhaps not as highly skilled than some 10x developer that people just can't collaborate with.
Having a small pair programming session would give you much more insights into that, than some technical coding challlenge.
No you got it exactly right on something nobody had mentionned yet.
Long gone is the time where programming was done alone in a cave,
yet that's what it feels to do a coding challenge.
Being good at contributing to Open Source is a better indication of how good the dev is.
The last time I looked for work, I was in a situation close to burnout with moral harassment from my boss... Finding a new job was, at that time, the only possible way out. I've been contacted by 4 companies, 2 of them made me do a coding test which took me a few hours (and when you're in overdrive, that's probably the worst thing to do ). Eventually, I was taken to a company that didn't have me take a coding test, but instead quizzed me on my general knowledge of different topics and my ability to stay humble and work in a team.
That's the spirit!
A company that treats you well during the hiring process is more likely to treat you well once you are hired.
I was given a coding challenge about 10 years ago for a mid level job. They wanted me to write a scraper to scrape concert ticket information from a specific site. The site wasn't their own site.
They wanted a whole set of information scraped, and json files created. They said it should take 1 hour, but the recruiter leaked the exercise to me a day early.
They would have had a lot of applicants spending many hours writing the scraper, and sending them working scrapers, which they probably used for real.
In case anybody is wondering, yes, the site in question were ticket scalpers.
I will proof Im good at my job. I call it: doing my job... and not wasting everyones time solving code puzzles that are unrelated to the work I am actually doing.
Its funny that you mention other jobs, because coding is one of the few areas in which people have come up with subjective ways to test if someone can do their job, before hiring them. Thankfully, there are still a lot of dev companies that do not employ insecure people, who waste all their time trying to assert their dominance over others, instead of doing their job.
I've had so many bad experiences with developers who can't code. I won't hire an engineer without some demonstration of coding skill. That doesn't mean I'm asking a recruiter to give asymmetric coding homework, but I'll have a staff dev do a one-hour coding exercise with the candidate.
That's fine with me
To add to your point...once, before jumping into the "prove you're worthy" process, I asked the question you mentioned and to my surprise, it wasn't a normal coding challenge. I had to record my screen while going thru the challenge, explaining out loud my thought process (in no more than 2 hours) and send a link...I guess a pour soul had to go thru all that at x2 or worst case scenario, nobody will watch that...just for the record, I immediately walked away...
I remember one interview I had. It wasn't a coding challenge per se. They took me into a meeting room with a whiteboard and asked me: if you were responsible for designing this company's platform/architecture, tell us how you would do it.
In hindsight, this seems like a way to get free experience/platform architecture suggestions.
I wondered about this too in the past. Interesting, I will investigate
I agree with youπππ
The employer say its needs, and the dev say its needs.
It's easy to understand if you don't have the mindset of a medieval landlord
A code puzzle doesnt tell an employer that though... There is only one reason you want code puzzles and that is because you want to assert your dominance over others. You have reached a position where you feel you are at the top of the hill and can toy with others that are beneath you. You want to distinguish between soy devs and your own superior being and for that, you absolutely need code puzzles.
Fine, we don't want to work with you either.
I bet you don't have a high opinion of people with a five figures job.
Well I don't want to force you to comment here