I have a co-worker who constantly misses deadlines, hands in incomplete work, or claims that things he doesn't want to deal with are 'too hard'. For reasons beyond the scope of this question he will stay employed.
For example, he was asked to center a button for over six months and never 'got around to it'. I learned about it yesterday and had the button centered in less than five minutes.
Today, he commented on the change, saying it's the 'favorite commit' of the person who requested it.
We're a small company without a strict org-chart, so the two of us are roughly equivalent in rank. I do have the ear of others in the team, as his behavior has affected us all. The other developers have to deal with his work which is full of short-cuts, chunks of useless code, large queries that are run and never used and he refuses to learn new technology (a rather large problem, as some of the things he uses were deprecated in 2009).
In addition, his attitude affects us all - it's difficult to maintain a 'hurrah team' attitude when a major portion of the team doesn't care about the rest.
Any comments about his behavior are met with some variation of "Haha, I know, right?"
How can I explain to him that this behavior is unacceptable?