> In case of SanFrancisco, the supply of good engineers that are available to be hired used to be limited compared to the demand.
If this were the case, salaries would rise until the supply equaled demand.
People have been calling this "shortage of engineers" for decades. A shortage means that demand exceeds supply at a given price (salary). If the market were free to adjust there can't be a long-term shortage. Salaries would quickly rise to the point where supply and demand were equal. If there is really a persistent shortage, why hasn't this happened?
When you talk about goods, long-term shortages can happen when either the supply is artificially constrained or there are some kind of price controls in effect. Which one is causing this shortage? There is no labor cartel in software. Nothing like the AMA keeping the supply of doctors limited. Anyone can learn from online sources and become proficient, and universities graduate truckloads of developers. So there's no artificial labor constraint. There is also no externally-mandated maximum salary for developers. So how can there be a long-term shortage?