Hi Jesse. I second the idea of remote work. I live in Canada, and although lots of freelance remote gigs pay so little that they can really only be done by people who live in countries where a dollar or a euro goes a very long way (e.g. in much of Asia and Eastern Europe), there are others that pay well enough to cover living costs in many smaller towns in USA+Canada (i.e. avoid most large cities).
How much you can charge depends on your skills, not just programming but also things like how well you communicate with your clients; as a native English speaker you have a big advantage on this one (I’ve had some not-so-great experiences as a client working in English with remote developers whose English wasn’t very good). Freelancers generally start out charging a low rate in order to get a few initial contracts, and then the positive feedback ratings from those contracts allow charging more, though beware jobs where the client cares only about cost and not quality because you’re not likely to get the positive ratings you want.
Toptal is unusual because as Amin says they’re picky (I haven’t used them as a client but once considered doing so because they claim to represent only good developers) so if you don’t get in there don’t worry about it as there are other places like Upwork.
One final comment: As a remote developer, your client can’t see you, so you need to keep showing them evidence that you’re still working for them, e.g. committing code and hitting milestones. Life happens though and if you become unavailable for any reason, be sure to let your client(s) know so that they’re not wondering whether you’ve disappeared forever (because that does happen).
Best of luck!
