The last straw was right before a pre-planned vacation (3 hours before, to be exact), he wanted me to merge our Jr developer's branch into mine. I merged it, and pushed it to the repo (not master or live, but backed it up to our repo server for when I got back).
Another note here is that they refused to use Git. Didn't even know how to pronounce it correctly and stuck to his guns about SVN. We ran into merging issues constantly.
When I was flying home, he sent me this nasty email saying that I'm not a 'senior developer' and that there were bugs in my code, etc, etc. A month prior to this, I was getting praise from the entire team and company bosses about a brand new extension I had written with no issues. He didn't want to hear that all of the bugs were incompatibility issues with the JRs code.
One other issue I ran into frequently was that the original code base (which he wrote), was so buggy, I would need to fix 5-10 bugs before I could even start working on a new feature. It was also filled with LOTS of security vulnerabilities, which were ignored. If I mentioned any of this in a constructive way, he would raise his voice in front of everyone at the meeting.
All was good though. They finally let me go because they 'ran out of money' a few weeks after I came back from vacation. The company folded within 6 months. Since then, I've had the best manager and contract I've ever had in my career and 3X my money over night.
Sometimes you need a shitty manager to appreciate the good ones.