> I work with a developer who is 10 years my senior, but still doesn't understand how to write concurrent code and cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up. On top of that, he is really resistant to the idea of code reviews;
I'd get ready to leave the company for a better job since it's clear there's no accountability at your company. This situation cannot end well for one of you. Either you are pulled down/leg go or he is let go/quits. Without accountability you can't be promoted at an organization. This is because there's no criteria (I mean there are edge cases, but don't bet decades of your career on it). This is the business of software development and you don't get to make decisions about appropriate quality levels at your position, nor do you get to judge other people's value, nor can anyone without some progress gauge at a granular level.
You indicate you use a process where code is accepted without code reviews. You work at a shitty company. You have a process where engineers don't all use revision control. You work at a shitty company. You have peers who act out politically to avoid working/accountability. You work at a shitty company. See the pattern?
In my experience, there have been cases where we just ignore the lame duck till some accountability gets implemented and it becomes obvious, but that's not the norm. Usually some nasty argument where you're trying to rehash the issue causes a serious consequence over an irrelevant detail (made up reason) to push one of you out the door. Usually you. Start looking for a new job, bring up performance metrics in meetings, ignore him. That's all you can do. Don't try to help him, he can do that himself and has chosen not to try.