The talent in the Middle East & North Africa is very strong. We believe it's the next Eastern Europe, which used to export refugees and is now a hub of world-class talent.
The quality of folks coming from a very selective program in a different country, however, has selection bias in the opposite direction; nearly everyone from there is going to be better, on average, than the 'average' interviewer, because as mentioned elsewhere, roughly half (likely a bit more) of people we interviewed could not pass FizzBuzz, despite having stellar resumes.
We saw the same thing with MEET, which I helped teach a decade ago too.
These kind of programs select developers with much higher code fluency, which is usually the result of a deeper dedication to coding, either in a previous work experience, in their free time or taking part in additional training.
Or
You've interviewed hundreds of experienced engineers who are bad at coding during interviews and under the problems you're asking.
There's a person on the other end of that table. They haven't had the time to think about the problem that you have had.
But you said I shouldn't assume your process is broken. If those are your results the process is broken.
Either your pipeline of experienced engineers needs to be fixed.
Or your ability to judge either who is experienced
Or your ability to judge who can't code for the life of them.
Your comment made it sound like 51% of experienced ngineers looking for a job can't code when the truth is 51% of your experienced candidates can't. It is broken..
1. Base technical skills - typing (yes, typing), ability to recognize and solve standard problems, and ability to process information quickly.
2. Familiarity with specific technologies (.NET, Angular, SQL, whatever you are working with). This is vastly underrated for line of business applications.
3. Architectural patterns - DRY, SRP, dependency injection, inversion of control, queue/msg based patterns, etc.
4. Domain knowledge, perhaps company specific
5. Social skills, etc
A lot of senior devs ride out their career on number 4. For a new hire, especially for a junior position, #1 is critical, because there is no #4 to speak of and #3 and #2 are handled by other devs.
From that perspective, it makes perfect sense.
Experienced engineers can help unfuck a massive complex system. They might not nail your napsack problem right out the gate.
But if you want someone who can nail napsack for you, look no further than fresh grads.
I'm sure many people's anecdata agrees :)
Hard(er) to fudge your knowledge when your standing (even virtually) in front of someone.
"other youngsters from Palestine performed better than at least half the experienced engineers I've interviewed in the past."
This comment caught me a little off guard. You are saying that these young people with no experience perform better than half of the experienced engineers you interview.
My question is what is wrong with your hiring process? It sounds broken.. What part of the process are the experienced developers failing in? What are you asking for in candidates that these experienced developers lack but can be found in this group of inexperienced engineers? Curious about salary, would you say Dalia friends makes the same as an experienced developer?