Since we're willing to pay relocation expenses and buy people out of non-competes, we were doing a nation-wide search, but as a generalization, university and gov't employees are usually there because they like the relaxed environment and are willing to sacrifice some pay for it. (I have worked at both, so that generalization is drawn from only my experiences and those of my friends.)
So after getting few bites there, we rewrote the job description to just be very good with Linux in general, hoping to get a really smart person with skills that complement ours and then being able to train them in the HPC-specific stuff. That increased the number of applicants, but also dramatically decreased the quality-applicant to applicant ratio.
You're definitely right that I could be misjudging the ability of some of the applicants, but a great majority can't pass the Linux equivalent of FizzBuzz, even though they list 10+ years of experience.
When you previously said "complicated applications in (python|perl|ruby)", did you mean someone who knew both front- and back-end? That implies someone who also knows Javascript, CSS, HTML, and a few databases, not to speak of one or more web frameworks, proxies, load balancers, etc.
When you say "debug and port C/C++ programs", did you mean someone who knows enough about Windows to port a program written there to run on Linux? Or someone who knows enough about BSD to port to Linux? Or someone who knows enough about [AIX|HP-UX|Solaris] to port to Linux? Port what, pure userland programs or stuff that messes around with ioctl calls? Debug from a hand-built in-memory circular log, core with no symbol table, using Dtrace, or just some judicious printfs or logging?
Depending upon how you specify what you want, you don't have to go far these days to stray a long distance from a "Linux SA" role, where even a "Senior Linux SA" job title won't cut it; you are moving closer to a Free Electron, and those people don't come cheap.
We hire junior people we think are smart into the ops roles and train them to eventually shift over into engineering. Some people can do it in a year or less, some a lot longer, and some just don't work out at all (or actually like doing the more routine work). Those people are definitely easier to find. We just talk to a lot of people and pick the ones we think are the smartest and will mesh the best and train them up on the rest.
In some cases, though, you just really need to get experienced people and can't wait the amount of time it would take to train.