Not really - what he 'does' is 'writes code that solves problems we are facing' - ostensibly - because there are so many ways it would be done differently if he was a professional communicator.
What I'm saying is it may appear that he is 'doing his job' - but I'm making the argument he's not.
But this is not a construction site. We can't say - 'pour the cement there and then go refill'.
He's inflexible and making others on the team bend around his designs. He does not reach out to others when there are issues, we have to initiate communication, keep an eye on the situation. He does not work with others to solve problems as a team. When asked for direct feedback, it's generally negative, cynical - not quite personal but almost. He does the minimum required and can't be counted on in a pinch like basically everyone else on the team. He takes the longest to respond to any issue.
Writing software on a team, is like solving a complex problem as a group. If you are not part of the group - then the problem is not being solved maximally.
I will definitely have a chat with him about all of this, but I know what the answer is going to be - and this is a behaviour and attitude problem, it's nary impossible to change.
I've let go of people like this before and the only regret I've ever had was not doing it sooner.
I don't expect people to be chipper sycophants, in fact, I hate that. Dispassion is fine, even a little bit of curmudgeon is fine with me. It takes all kinds.
If someone really does not want to do something, and they have an 'inner negativity' about it - it will take a high degree of professionalism for them to carry on properly. If they can't manage this level of professional behaviour on the communications side to make up for their negativity, well, it's out.