You might come across a ML job advert that says the person needs to know Matlab. Well, what if you're a Numpy or R ML guy? It's quite clear to me that such a person is just as well qualified.
If you're looking for a compiler guy, you want someone who understands those optimisations on a theoretical level, ie abstracted away from the concrete language. The toolset may be completely different for each language, but people with equivalent fundamental knowledge should not be separated just by what tool they happened to use.
Do you think when Google decided to create the V8 JavaScript JIT they hired a couple of Django programmers and asked them to google 'how to write a JIT'? Or do you think they specified a certain level of experience in writing JITs on the job advert?
That really depends on what "from scratch" means. Any particular piece of code can be examined in enough detail that nobody in the whole world would understand all of them. Luckily people who understand specific pieces will produce a part for others to use. Often the only thing that hasn't been done before is one particular mashup of existing parts. Then the skill of coding is like the skill of cooking: using judgement to assemble well known parts into a new whole.
> Do you think when Google decided to create the V8 JavaScript JIT they hired a couple of Django programmers and asked them to google 'how to write a JIT'? Or do you think they specified a certain level of experience in writing JITs on the job advert?
That wasn't the point. I'm not saying that any programmer can do any programming job. But that the selection criterion (language, framework) is in general wrong. If you have a guy who did a JIT for Java, do you disqualify that guy from a JIT for Go job? I don't think so.