I was recently interviewing for a Python/Django developer position and was instead offered a SDET position (with the possibility of becoming a developer) because I don't have experience with Django.
I turned them down because it felt like an insult.
If you're a developer working on web-based software, you are known as the web-developer guy (specialist).
If you're a developer working on transactional, security, concurrency, you are known as the back-end guy (specialist).
If you're a developer working on business-app, you are known as the enterprise developer (specialist).
If you're working on product-based company developing virtualization, you're specializing.
Developer who work at Google, while they might not used the varieties of framework out there, are specializing in Algorithms, Data Structure, Concurrency, and Large Scale development.
If you're looking for work as an internal business-app developer writing JEE components, your recruiter might not want to accept Algorithm geniuses who used to work at Google.
A Rails guy will look down on someone who has 7 years of Java experience whom tries to escape Java at the same time but wouldn't say something bad about his work experiences (not burning bridges).
These days people shaped their mind and view pretty quick.
[1]: http://www.quora.com/Silicon-Valley/Why-is-there-such-a-stun...
If you're looking for work at VMWare, your Rails and MongoDB experience won't be needed. They want C/C++ guy who can hack Linux kernel or write device driver.
If you're looking for work at Facebook, they want someone who knows PHP and C/C++ and probably have provided patches to MySQL or memcached. Or they grab "idea" people like Lars (from Google).
You should also "own" that domain (compiler, AI, optimization, OS/Kernel, Networking, DB/Data-Mining, business-app, ERP/CRM/Enterprise).
This is scary because it forces you to: 1) Put your eggs in one basket: domain
2) And put more eggs in another basket: technology
3) Stay up with the latest in (1) and (2)
This left you no room to breathe. To break this cycle you probably have to get out there and do something on your own (meaning: your own business/company)
All I do know is that I have heard the other story as well, i.e. people who are hiring are inundated in replies.
Exactly, and I suspect that many of the developers being "purged" are not those who aren't passionate, but those who happen to be too much of a generalist.
Today's job listings often ask for experience with libraries A, B, C, D and E. (It's not even about languages anymore; the "Python" jobs are really mostly for Django, and "Ruby" already meant "Rails".) They get literally hundreds of replies, so the chances of getting applications from people who actually do know all those libraries are fairly high. You just pick one of those who seems competent (maybe you'll let them do some of those puzzle questions that seem to be in vogue nowadays) and they can bring value to your project right away.
A generalist, on the other hand, loses out here, because they do not know all of these libraries (yet). It does not matter if they are competent and can learn these new things quickly; they aren't even considered.
So, you just learn these libraries, and next time you will have a better chance of getting the job, right? Yeah, except that the market is so fragmented, that the next job listing will require F, G, H, I and J. There are just too many of them to learn them all.
I'm getting the strong impression that getting a job nowadays is a matter of (1) luck, or (2) knowing the right people. Many companies like to pretend it's about passion, but other filters are applied first.