- Stronger requirements regarding specific frameworks and languages.
Generically, five years ago it felt like you could be an all around good engineer in some domain and be a good candidate in an adjacent domain. Today, it seems that you need to be completely up to date on the language in addition to all the best practices, build tools, and _all-in_ on a very specific set of libraries and frameworks. A candidate with any deviation is rejected.
Economics tells us it's because of a tighter labor market but in a way it says to me there's less room for learning and creativity.
1) All day interviews. Seriously, I've had an 8 hour interview. They served me breakfast, lunch and dinner. This was after several other rounds of interviews.
2) Expecting me to perform "free work". I have had several companies insist that I create and submit "sample" projects. This is NOT simple stuff like FizzBuzz. The projects realistically take 20+ hours and are solving non-trivial problems. This is before you even talk to anyone.
3) It can take weeks or months to go through the process and finally get an answer: one way or the other.
4) Companies straight up lie about everything, from working conditions to performance expectations.