There is NEVER a time when there are not enough qualified US Citizens.
Why? Because if I am a company, I will 100% always be able to hire enough engineers, if I just do this 1 weird trick.
And that trick is "pay every engineer 1 million dollars".
The question is always about price.
In the same way that a food shortage has basically never existed in history. Sure, there were places where the price of bread was 1 thousand dollars, and people were starving to death because they couldn't have enough food. But thats not a shortage, thats just people complaining about price!
Now, the real question you have to ask yourself, is "is bread costing 1 thousand dollars a good thing?" And when you can answer that questions, you will also be able to answer "is a software engineer costing 1 million dollars a good thing"?
Edit: my post doesn't seem to be clear.
My point that I was making is that "bread costing 1 thousand dollars is a bad thing". And that there is nothing wrong with driving down the price of devs.
My definition of shortage is "prices are too high"