Many, many months ago I started writing a program for work, this was to be an OS service, the details aren't really important. I got a good chunk of this done in C++. Then other, unrelated work was assigned to me and at this same time it was deemed that all that work should be rewritten in plain C. Since I didn't have the time for this the task of converting this to C and having the code merged with other components into a single process was handed off to someone else. A few weeks later the code changes were submitted. I looked through it, it was straightforward, objects eliminated body of the functions pretty much the same otherwise. The code wasn't really that involved. However all the comments in the source code the headers, the revision information all of it was removed from the original and updated with new dates, version numbers and a new author's name. This extended to the design document which was literally identical to the one I wrote and had updated except it now had a new file name had all the revision information removed and the version number rolled back to 1 and of course a new author's name, otherwise it was identical to the last version I wrote, down to the page numbers, section numbers and even the god damn font, really a complete rip. I was then informed that he and I would be co-owners of this service. This is a bad idea at the best of times as people will invariable differ on an approach and without someone having authority over the other it's a stalemate. We're also on entirely different teams, I don't think we have a common superior until the VP level, and have a good thousand miles of physical distance between us. I knew immediately this was going to be a fucking nightmare with this guy. I've been able to minimize our interactions entirely, which is the only reason I've been able to stand this so long, by quickly dividing up areas of responsibility. This has worked pretty well, we don't have to communicate frequently at all. When we do though it's never been a good experience. He's constantly undermining me, refusing to make any alterations during code reviews, no matter what or how small. It doesn't help that's he's a terrible coder. The only battle I sort of won was when he introduced a new thread as a means of handling an event when our process is specifically designed and intended to be single threaded and didn't even make attempts at making it thread safe at all. He of course did what he always does and submitted the code before the review was done and it lived in our code base for over a week while he refused to make changes I refused to sign off on the review. When he finally changed it his change was almost as poor as he used a signal handler instead and did all the work (seriously not trivial) in the handler and didn't do anything to protect any data within it and modifies the crap out of several pieces of externally accessible data. In this OS a signal handler processing stalls the kernel and can interrupt the process at any time. It can have very similar effects that an unsafe thread can, such as data changing between what appears to be sequential lines of code as the kernel may interrupt the process right then to execute the handler. His excuse for all this crap is constantly that his change absolutely has to be done now because it's needed for version X, even when the cut off for version X is weeks away. Today he really got under my skin as he once again submitted code prior to even posting a review. Again the code is absolutely terrible, it's a total hack in the service to try and cope with a bug causing some odd behaviour in a related component. The change actually breaks the service should that related component be fixed. If that dependent component is changed and suddenly works as it's intended to our critical OS service no longer functions. He's refusing to change it, one of his secondary responsibilities is even that dependent service, he can correct the root issue he just doesn't want to. He spent all day fighting this, as of course it's needed by the end of the week, instead of acknowledging the issue and using the time to implement an actual fix. I like my manager but it seems he's more interested in trying to keep people happy than do what's right, even when though our technical lead is always on my side, I don't push the issue if he's not. I've pretty much had to capitulate every single time just to keep this supposed relationship on good terms, which it clearly isn't. I don't know what to do with this ass, frankly I just don't want to have to deal with him anymore and would like to just wash my hands of the whole thing and give up ownership of this service. It's just not worth it and it's disheartening seeing it get progressively worse as time goes on. Anyone have any suggestions here?