Why not go a step further, and add a fee to become a candidate? Or perhaps just to skirt the queue and get to the front of the line?
Edit: Then there's the industrial espionage aspect but I don't really care about that, it's probably for the best if competitors and curious folks interview with them to learn what they have and how it works and undermine their business.
In software, how much can you really get out of a human with a very small context who has no long term view or investment in the quality of the codebase? If you care that little, you'd just punt it off to vibe agents.
I've been interviewing some lately, mainly with organisations that have tight restrictions on non-EU-services. It has been nice, we've been able to talk about what they need, what I can do and how their team works together and interfaces with the rest of the organisation.
Eventually I settled on an offer from an organisation that handles a lot of sensitive information and runs a kind of 'factory' style process, so there'll be requirements reminiscent of old fashioned industrial engineering and exactly zero vibing at work, at least if the Security Service says my reputation is good enough.
Would be the most fair ground rules to set as candidate.
That tradeoff makes enough economic sense to me personally, but to each their own.
I do agree that companies flush with profit should be able to offer a stipend though, and unwillingness to do so is a signal I use to evaluate them.
It doesn't change the fact that the real work could be an hour's exercise or longer remunerated work. This isn't an either/or scenario like you put it. Plus, for a fact, companies will happily have you doing both the leetcode and the take-home test.
it seems like such an obvious target for the likes of north korean saboteurs.
Interships already exist as "doing work as an interview"
How can an engineering team say they have a good process if they don't measure the results of the process?
Sure, you can make a lot of logical leaps, but what does it actually produce?
How does this compare to hiring by randomly picking a sufficiently good-looking resume?
Finally someone has figured out how to hire accurately.
Analog: https://bookshop.org
Functional decomposition, combined with good naming, is what allows engineers to raise the level of abstraction and localise understanding of a large codebase.
Without it, if your only option is "read the implementation" for every line of code, you've lost control of the codebase.
It's healthy to not trust function names - it doesn't mean the whole codebase is out of control.
It’s now trivial to extract a toy app that is a dummy version of your product system, introduce a sprinkle of bugs, write ok documentation etc - and then spend an afternoon with each candidate building in it. This was way too much work to be practical pre-LLMs but I think it’s very doable now.
The problem with having them work on prod code is it will (hopefully) get thinner for real example cases for candidates.