With several of the companies, I managed to (via either vowing silence to recruiters, or having an inside guy) get feedback on my projects. Nobody volunteered feedback willingly. And honestly, based on what feedback I did get, I see why they didn't want to offer it. It was an unscientific mess.
Generally:
* There was either no rubric or very basic rubric for scoring the assignment * reviewer gut feel and comments were seemingly more important than the score (if present) anyway * frequently, reviewers disagreed over whether a cool doodad was indeed cool or over/under engineered. * frequently, there were "gotchas" where they were either expecting you to notice an "issue" with the prompt, or they gave a vague prompt and wanted you to fish around to discover specific non-obvious things they wanted to see.
Now obviously, it's not like any strategy for interviewing software people is all that great. But at least interviews take nearly an order of magnitude less time than projects, and also have some built-in feedback via facial/verbal cues and such. Instead of just shooting your project tarball into the abyss just to get a boolean back.
Engineers in many companies are already given far worse job experience than what is paradoxically required on their resume to get in. Interesting or valuable projects are rare and lots of people fight over them.
Whiteboard hazing tests for fealty or naivety that will let existing engineers remain superior to you a lot of the time. Really smart people who would leapfrog you aren’t going to agree to be infantilized like that.
So it’s a filter on a certain combination of both competence and fealty. The company / department as a whole might have an incentive to hire really good people, but because lower level managers and engineers own the loose rubric of what counts as a good candidate performance, their incentives to hire only a subset of competent people who are also manipulated into being in their control will take precedence.
It’s so bad that we even have things like TripleByte now that are outsourcing options for filtering based on fealty while disingenuously claiming to be objectively filtering on skill assessment.
I do think loyalty/fealty is a legitimate goal even if the things people do to try to get it are futile or counterproductive.
It's a real red flag.
It's just difficult - and while interviews are decent, whiteboard tasks are usually useless. If you have your own or contributed to open source projects, that's pretty good too for assessing code quality, but not everyone has that.
Ultimately paying for assignments would probably be the best solution, but not everyone can do that either.
But the problem is, some places provide a take-home assignment in the beginning, and then override their judgment with the programming test in the interview. Which makes it pointless, which probably leads to candidates rejecting the sort of place that does the take-home.
I immediately discard such companies (if they don't budge). They have shown, from the get go, they're not respecting their engineers. Why would you work for such a company? You're never going to be treated as an equal there.
But I only do homework after the on-site interview, so I know I really want to work there and they have some "skin in the game" too not just shotgunning random candidates that they never actually planning to hire.
Also, anything over 3 hours is a no go.