In particular, stay away from anyone funded by Vista Equity Partners because they enforce IQ tests during hiring for all of their companies. That's overlaid on top of a whiteboard assessment.
Here's another kind with (broken) word association problems from FirstBank looking to hire developers: https://imgur.com/a/QXlKC
No. Any filter in hiring that adversely impacts a protected class and is not closely adapted to the work being done is illegal as a violation of the law prohibiting discrimination against the protected class.
The case in which this legal principle was established involved an IQ test being adopted as a direct replacement for an overt policy of racial discrimination, but IQ tests as such are not illegal (indeed, a much more recent case has upheld a police department using such a test and treating a too-high score as a negative factor in hiring.)
Of course, the pervasive mythology that IQ tests are prohibited itself makes them riskier, because an applicant who is turned down is likely to have encountered the myth or talk to someone who has, and seek legal help to challenge an IQ test, where they would be less likely to do so for other tests.
I consistently do well on them and if a company give me one I feel it increases my chance of getting the job as I like to think I'm quite a lot better at figuring out stuff than I am at smalltalk :-)
It might help though that none if the serious IQ tests I see here include any writing: they all consist of pattern matching and other puzzles.
In fact thats a major point for a good IQ test I've been told: ideally it should give the same result for equally smart persons even if they were raised in vastly different environments.
At least in Brazil, a significant amount of candidates are out of the market developers who simply are not very good.
Some of them might be good at selling themselves in an interview but will be bad performers. In many ways a bad hire will cost a lot more than no hire at all.
Similarly developers bad at selling themselves on interviews might be good performers. If they have public code that can be looked at we can decide for ourselves, but that is also hard to compare to other candidates, specially since a lot of them do not have public code.
I believe a bite sized on site (with internet)/online/homework coding task within the required skill set will actually help filter out some red flags and will help drive the following interview since it's easier to talk about something concrete.
As long as the task is close to actual work that will be done and not gimmicky, won't take an absurd amount of time, and the candidate can have access to all resources they would usually have (mainly and IDE and internet access), I think it's a valid proposition.
I simply refuse to do these anymore, which has unfortunately precluded me from FAANG level jobs. They give me panic attacks. It took over a year of searching in SV for me to find my current job because of it. Why is this the only industry in existence with such an accepted process?
I'd say the two are related.
Find some lawyer friends, ask them about the bar exam.
Find some doctor friends, ask them about what it took to become a full doctor.
Etc.
Software Engineers don't have those hoops to jump through. Anyone can call themselves a software engineer (in the US at least, other countries have legal requirements around the title). As a result it's up to the employer to do the weeding out of people who are no good.
Is it fair? Not at all. Is it always necessary? Def not. Does it make sense when software runs the world? Yes.
Ask employers and they'll tell you that over 50% of software engineer applicants can't even write a for loop. We're not talking "serious coding" here, we're talking "count to 5".
I know I can program. You don't know I can program. Do you want to hire someone who simply can't write a line of code to save their life and then have to deal with the headache of firing them and hiring someone else?
And that's best case scenario, because someone who can't code can do a lot less damage than someone who can code badly.
False negatives suck for the employee because they don't get a job. False positives suck for the employer because it's a massive headache and money sink. Since employers are the gatekeepers, they're often going to try to minimize false positives, even at the cost of false negatives.
And it should be asked, why is spending hours and hours building open source software outside of your day job a reasonable requirement? Doing open source well is incredibly difficult and requires a different skill set than working as a developer.
If you want to sit in front of a computer for several hours, then go home and do it all over again for free for the community, that's great. Sincere thanks are in order for that. But requiring it from all your candidates is unreasonable IMO.
1. A homework assignment where you have to write some code for given requirements, use a specific design pattern they require, write tests and document.
2. Have a 1 hour phone call to discuss your assignment.
3. Have a face-to-face meeting with some of their devs to discuss behavioral stuff (what motivates you, what you want out of work, how you give and take feedback).
4. A full day of technical interviews.
I did the first three steps and I thought I was done, because they never bothered to describe the whole process clearly. Then they contacted me to schedule a full day interview round. Since I didn't know about that beforehand, I had used up all of my PTO on interviews with other companies. I explained that I couldn't do a full day because of my work and they offered to do two consecutive half-day interview rounds from 4 pm to 8 pm.
Now, let that sink in: they were willing to make their devs stay and interview me until 8 pm, two days in a row. That's when I decided to thank them for the opportunity and politely bail.
Are you sure? At my company we have very flexible time, and due to city traffic, many people come in around 11-noon, meaning they choose to leave around 7-9. This is much more convenient for them because of the traffic, and sometimes it better matches a spouse's schedule, or allows them to do something in the mornings they wouldn't normally be able to do. It may have been an indicator of a really good place to work. (Which isn't to say you're wrong. It very well may have been a warning sign.)
Although it's my own conjecture, it's based on numerous other signals I got from them during the interview process. As an example, any team member A can point out that any other team member B isn't pulling their weight and shouldn't be working there. That initiates a discussion about whether B should be fired.
...with zero feedback in case process doesn't go through, thus losing all the time invested