Last year I was lured from New York City to one of the US's big 25 metro areas, not in the Midwest.
In New York, I would go to topic-focused programming meetups at Facebook's NYC headquarters and there would be over 200 people there, meeting after meeting. There's nothing like that here. The local university has some tech meetups, and there are some in the city center, but they look nothing like in New York. Due to Covid, I have not gone to any (and they seem to be cancelled any how).
Right now here, there are a handful of job openings that I am well-qualified for, but I can count them on one hand. In New York there are more job openings I could go in for. It's one of the biggest drawbacks in terms of a long term future here.
I have friends in the Phoenix metro area. The Phoenix metro area is larger than the Bay area metro area population wise, but the tech scene is smaller, and it small enough that everyone seems to know each other.
One nice thing in 2000 is as the dot-coms imploded, the job market in New York was not as heavily impacted as the Bay Area market. I started 2000 working for a startup that had IPO'd and ended it working for an investment bank. My salary was bumped up slightly, whereas some more junior people I knew in the Bay Area were laid off as their startups went bust and had trouble finding jobs out there as the market was flooded with junior or even mid-level talent.
I do know good, senior people who are tied to this area for one reason or another, who have moved around the handful of companies that are here. There are only a few big companies here employing a lot of programmers, so just like Phoenix, everybody seems to know each other here. When people are unhappy at my company, they contact former co-workers who moved to one of the other big companies and get pulled into their teams at their companies.
There aren't many "tech" companies, you're working for a Fortune 1000 company in their IT department usually here. Or a smaller company, although startup funding is not fantastic here.
I am not capable of senior level pay on my current stack yet, and a nice, large apartment in a nice, convenient neighborhood is cheaper than in NYC (although not incredibly cheaper). So I don't have much to complain on the salary front. But as it stands, there are less openings on the job market locally, and as I become more senior, it might even feel more constrained. Local companies have trouble attracting and retaining senior talent, and there is a reason for that. My company has been changing compensations rates around and making other changes in order to lure more talent.
Primarily due to the smaller number of job openings locally I don't see much of a long term future here outside of my current company. If I ever decide to look around, it will probably be in New York City or in the Bay Area. And my reasons for going back to New York City would include personal ones. Although one very good young programmer I know said he would prefer New York over San Francisco as he thinks New York would have more of a nightlife etc.