I think there is also a different thing going on. Most companies expect their
hires to already have significant experience, but little are ready to train
new hires to match (future) needs. It's understandable where it comes from:
employees are not that loyal anymore, so any training would be an investment
that returns to somebody else.
On the other hand, times when companies were loyal to their employees are long gone, and this is pretty much why employees switch jobs so often nowadays.
For more general environments, it's probably not a shortage of engineers, just a shortage of engineers who will enthusiastically work at the rates that employers would prefer to pay.