"but also seems you weren't any better as a manager"
The issue is it was impossible to held him to the deadlines. He agreed on them - and often I allowed him more time than a skilled developer needed - and then utterly ignored them, producing different excuses. Being kind and remembering him how important it was for him, the team and the company to deliver good code in time was utterly useless.
He knew someone else would have done his job to avoid issues, as I later discovered his previous team did as well.
Unluckily I had no power to force him to met deadlines in other ways, because while I was in charge of the technical aspects of the project, I had no power on people because their management was assigned to a "business" manager, not to the team leader. As long as he didn't have "business" troubles, everything was fine.
And HR didn't want to manage issues, as long as nothing really bad happens, so troublesome people were just assigned to a different team. And incredibly, someone losing his temper is for them worse than someone getting a salary for doing nothing - because in the latter case they can assign the fault to someone else, while a confrontation needs to be addressed by them.
IIRC he was once kindly asked to work better, but once again, it was useless. Some people as soon as they understand they can get away with it without consequences, they won't change habits.
I came to a point where I had only two choice: A) Keep on making other team members do his work B) Let things escalate.
Just, when I saw they weren't going to address the real issue, and just hoped someone would have again written and fixed the code, and nothing else, I lost my temper.