My little bit of advice: save enough money for your emergency fund. I recommend at least six months worth of expenses. Not just for your primary bills, either, add up how much you actually spend in a month on everything and save 6 times that. That way, if you end up in a shitty situation, you can walk away and not have to worry about money, and you don't have to start eating ramen noodles everyday. I feel like money (or the lack thereof) is usually the reason why people put with so much crap. You don't need FU money, just enough to give you a comfortable runway to getting a new job. If you're even a halfway decent developer and you're in a decent market, six months should be plenty of time to get a new job.