Earlier quoted context omitted.
>The problem is there's a shortage in qualified candidates. The problem is that there's a shortage of companies willing to invest in training.
The problem is that there's few companies who can afford to invest in training. Only big established companies can do it (and they do, extensively). Small companies and startups don't have the time or funding to do it. Not only is it expensive, but training people in transferable skills can all too often result in them quitting right after their training is complete and going to work for a company that invests in pay…
Yes, once you train a person you need to pay them more. You might feel like they owe you, but unless there is a real understanding between the two of you that you are investing in them and expect to pay them less for some period of time to recoup the cost (eg in the form of a contract you both signed stipulating a minimum term after training, with claw back provisions), this is what you should expect.
Depending on how much it costs you (besides their salary) to train them, it can still be cheaper to hire and train than getting someone experienced, since everyone needs some time before they're really effective and you're paying them at a lower rate while you train them.
There is something to be said for small startups just not being able to support that kind of load, but I feel like once you hit about 20 engineers it's just people being lazy and not wanting to do things any differently, rather than any true constraints.
The fetishization of the 10x developer leads us to ignore the fact that lots of the work developers are tasked with doing is really quite repetitive, intellectually unchallenging and uninspired.