Ask HN: Is it typical to have a coding project for interview?
I find out that many startups are asking candidates to do 3-10 hours long coding project before even inviting them to onsite interviews.
Is that typical? And what will you do when they ask you to do that? Thanks.
20 comments
[ 3.0 ms ] story [ 57.1 ms ] threadI try to stick closer to companies that have a balanced interview process and a smaller live coding challenge, think 20-45 min can really suss out a person's technical level anyways.
Just my $.02
What people like us, who do like them, don't realize is how much stress it puts on people who don't like them. This stress does not usually have any real world correlation with the job you are hiring for, so it severely biases against candidates who would be great but fail due to stress. It also biases towards people who can come up with glib fast solutions, which also frequently isn't correlated with being able to solve long complex problems.
Ultimately it's going to come down to a harsh reality: how bad do you want that particular job? If you really want a particular job and they tell you that they won't hire anyone who doesn't wear a funny hat to the interview, you'll be browsing Amazon's hat section (unless you are pre-equipped with funny hats, in which case you may be an exceptional hire).
Companies equally have to make a decision although they may not realize it. If their interview process seems more painful than necessary, a well-qualified person (who is in demand) may choose to apply somewhere else.
Things are great for job candidates now, but I worry what happens if this attitude you describe gets applied if/when things go bad, like they have in the past and might again.
Working with good developers is one of the single biggest job satisfaction metrics I've found and I don't know of any interview process that works repeatedly better than having people create code at home for review. So I view it as a red flag if companies don't ask for this.
That said 5 hours is too much. 10 is overbearing.
Tipoffs for the former: you're building features that they don't have, or fixing bugs that they currently do have, working alongside one of their team members, &c.
Tipoffs for the latter: you're working on a toy problem, filling out the skeleton of an application, building some kind of system that they won't ever deploy.
The latter kind of project is pretty reasonable, assuming the rest of the interview process is calibrated to account for how much time you took. For instance, if you're doing 3-10 hours of coding (10 hours is a lot, by the way) just to get a phone screen, or to go to the first of several rounds of onsite interviews, that's an unreasonable ask. But on the other hand, if you're being asked to spend a couple hours doing in the comfort of your own home what you would have to do onsite anyways in a real interview, that's very reasonable.
The biggest flaw in the entire current "standard accepted interview procedure" (read: cargo cult hiring process) is: they don't care about the interviewee's time. The secondary flaw is: the tech people designing interviewing processes don't understand the nature of "work," "thought," or what makes valuable employees, well, valuable.
Companies enjoy using coding tests (sometimes lengthy) as a simple filter, but they don't really care about it. Every company I did a "coding test" for accepted me for an interview, but at no point did any of them ever mention or talk about my submission. I could have plagiarized every submission whole from some random site online. They'd never find out since they never asked me to talk through the work. One company, after 10 hours of my working on their exercise, even told me "sorry, we sent you the wrong one. do this other one instead."
If you ask companies why they have their interview processes set up the way they do, they'll probably just say "because that's how company Y does it too." They want to be part of a successful pattern without understanding the underlying meaning. It's like a sales person using a dozen buzzword acronyms without understanding how anything fits together.
But, if they do want to continue handing out 10 hour coding tests, society has a generally accepted way of handling issues like this: pay for time. If there is a power imbalance (employer vs. interviewee), the more powerful party should refrain from exploiting the weaker party without compensation.
If coding tests really get annoying during your search, just launch a startup to destroy all the companies with bad hiring practices. No fury like an interviewee scorned.
In fact, now that you mention this, I think I'll try to make sure that becomes a rule --- we'll try to blind challenge grading.
Work-sample testing is very, very powerful, but there are important nuances to actually executing them.
You can find out a lot about how a person thinks about programming with exercises that take actual time. Twenty minutes with FizzBuzz (which I still get on occasion) doesn't speak towards anything beyond "can monkey type?"
I've made it a rule to provide fairly detailed feedback if I get to the point of giving someone an exercise. Not all places do that, and I think it's too bad. If someone goes to the trouble of spending their free time on this I feel I owe them at least some of mine.
Also, do you do this with your doctors and lawyers too? Give them homework to see if they are worth the money?
For doctors and lawyers there are known sources of publicly-available information regarding their history, background, cases, etc. and the referral system is more formalized than for developers.
Not really intended as a hiring criterium, more like a monitoring tool for actual experience, modus operandi, etc.
NB: They should be investing as much time in you, not just using this as the first step in order to see who has the most time to waste.
I used to do every test, but the conversion rate was so low that I no longer bother.
I currently have a job and I'm only spending 1-2 hours a week looking. Why should I waste 1-5 hours for the chance to MAYBE get an interview? Will I spend my limited time on every stupid test, or on the guy who respects me as a professional?
If you're that serious about try-before-you-buy hiring, make it a consulting project and pay me for my time.
I won't waste time coding toy programs if I don't think the employer is truly interested. And I can't gauge that until a phone interview has happened. So any company that requires a code challenge prior to a voice interview is effectively blacklisted.
If you value your sanity, avoid companies that ask for it. Although they do seem to increase in numbers at an alarming rate.