If you have a job where your entire job is to crank out some website in Rails or to be the only person building some billing system then sure, remote can make sense. These jobs tend to be on smaller teams with limited scope.
But projects can easily get to a size where you need to:
- Collaborate with other engineering teams
- Work with people on the business side
- Work with product managers, data scientists, comms people, etc
- Gather requirements because what you have is fairly vague
- Determine if what you're doing is having the intended impact and adjusting as necessary
While remote can still work in these cases it's much, much harder. It's even harder when you have two teams in different sites even if you're in the same time zone.l
Some pro-remote people also say "I don't need the social interaction", which I think misses the point. You might not but what about your teammates? Doing things like having lunch with your team, going on an offsite, etc actually matters. It helps build a better working relationship.
This is I think particularly the case for more junior engineers. If one is two desks over from you and swearing at their computer then you can see that and intervene. If all the senior people are remote, who is going to do that?
So if you really want to live in [small town X] here and work at home to drop your kids off at school or whatever, that's fine but there's no getting passed the fact that you'll always have less opportunities and only a subset (a small one IMHO) of jobs will be suitable for that. And you just have to accept that.