I think, to make this argument, you need to offer a solution to the inverse: If a company is based in Iowa, and you live in SF, then I assume you don't want them to pay everyone Iowa rates, because you couldn't afford your rent. What should they do about that? Seems to me the answer is: cost of living adjustment.
Companies in he Midwest already do this and I have no problem with it. Remember one of my points is that SF is so expensive because people consider it a better place to live. People living their value the cities amenities over the affordability of say, Iowa.
I think companies should pay people what they think the candidate will accept, that the company thinks is a responsible use of their companies capital. If that means employees in the Midwest are willing to accept less, then that’s those employees choice. I don’t think companies should have an explicit policy that discriminates by zip code.
A bit confused, are you saying that companies in the midwest already pay midwest prices regardless of where you live, or that they already offer cost of living adjustment?
Pay their local rates. I dislike the term "Cost of living adjustment", since it implies some people need more money to be compensated equally (See above. a studio in Palo Alto and a studio in Kanses are not the same quality of life. SF is a very desirable place to live for a practically uncountable number of reasons. That's why a guy surrounded by corn, paid equally gets 4 bedrooms and a boat. Part of why I think companies that pay CoL invite a coastal urban monoculture.)
For a while, I think it was basecamp, paid Chicago rates no matter where the employee was located. If it was basecamp, they now pay SF rates globally, despite not having a single employee in the bay area.
I think you would be very hard to find a midwest based company, that paid bay area rates for a remote developer.
There are some companies that have offices in the midwest, but HQ'd in coastal urban locations, and they tend to pay more than a local company would pay, but that's not entirely the same as remote work.
My whole thing (since I know it seems contradictory at times): Companies are going to (and have the right to) offer whatever they think is best use of their capital. Employees are going to accept whatever they feel is worth their time. If a company knows it can pay a rural engineer less than one in Cupertino, and they offer less because of that, that's just the reality of supply and demand....
However, I'm calling BS on an explicit policy of "You live next to poor people, and we want you to fit in." Even when a company like GitLab admits it's all about saving them money (Their official document on pay says something to the effect of "all things equal, we will pick the candidate living in the lower pay area") Then I'm still calling BS on that company culture, which is hiring the people because they're the right price, not because they're right fit.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.