It would only make you look like you were incompetent at dealing with awkward situations. Not a good result for you after all you have put up with.
While you may have been boiling with anger as they have been testing your patience for some time, it's not a good idea to go from zero to rage in one go.
E-mail the person your colleague reports to (hopefully they will have had first hand experience for the incompetence), explain in confidence you are having a few issues with this colleague of yours, say you're being patient and want to resolve the tension, however there has been a long undocumented string of occasions where you have had to fix their work & pick up the slack. Add that you've attempted to bring this to their attention in a friendly manner but it has not improved the situation.
Explain that you will now re-focus on your own work and that while you will continue to be friendly and supportive you do not have the capacity to assist as you have been doing.
Sign off by telling them that you require their support to rectify this issue, that you will keep them updated and will document any examples of the situation escalating.
Ensure you only ever remind your colleague of errors they need to rectify by e-mail so you can keep responses.
Don't let them drag you down (work wise or emotionally) if you handle this with just the facts, no blame, they are then solely responsible for their own downfall.
If you are the only one that believes the person is incompetent but the rest of the team (including supervisors) doesn't believe so, then you've got to let it go. It's not your battle.
If you want to "thunder down" on the individual, go ahead, just don't do it in front of the person. Find a room in your house, and let it out. You'll feel almost the same as if you had done it in person.
People have long term memory for highlights and short term for details. If you "unleash" you could be branded as the person that torn down another colleague (a non team player, hostile, etc..) and the reasons for your outburst (regardless of how legitimate, wouldn't be really remembered). Depending on where the person is on the totem pole in the company you may even be putting yourself in danger of losing your job.
But, based on what you are saying, it almost seems you are talking about design issues with code and approaches on how to solve a problem. If this is the case and you think the person's solutions are sub-par, but they still get the job done, then you just need to chill. We love to think how something is designed/implemented is really important but at the end of the day if the car turns on and drives around, most people just don't give a sh*t that the engine is the best in the world. Keep your part of the code the way you and if it turns out that you end up maintaining/owning the person's work, then you can start refactoring or complaining that the code is subpar.
The way I would go about solving this problem is like so: Have a nice private chat with the person. First, ask him if he has any problems with anyone at the office. Then address those. Follow that by relaying your problems with him(in a nice, professional and calm manner). Work out with him how you would approach solving the problems you have with him. It could mean that maybe he might need to take a week off to brush up on whatever the language skills, or even that he might think it is culturally acceptable to lash out like he is.
Basically, work with him to figure out how to make the workplace a better place for both of you. Remember, if you fight fire with fire you only get burned.
It's not worth it by any means. You'll likely cause more harm to yourself vs them. I would hope management is aware of the lack of skills this person has. If not it's probably time to bring your concern to management. I wouldn't suggest taking a tit-for-tat approach to their inability. It should be how they're impacting your work and that you're afraid of how consequences would roll back on you.
Management should setup milestones/goals for the employee to improve him/herself with the resources that they'll need. If they can't meet this milestones it's grounds for dismissal. To be ethical and legal one should give their due diligence in trying to give the employee the best opportunity to succeed.
EDIT: I fully acknowledge the desire to 'unleash the beast' on incompetent people.
Personally, I advocate this strategy: you must periodically get contacted by recruiters, yes? When they ask "do you know anyone who might be interested in this position," pause for a moment, and then supply this cow-orker's name and contact info.
Clearly, despite their incompetence, they managed to get their current job, so they should be able to get another one with the aid of a good recruiter.
Cry lots of fake tears when they announce that they're resigning and heading to another gig. Then, go out for drinks to celebrate once they're gone.
It sounds like you are very angry and there is nothing you can do about it. So, you can either play the long game of finding a different outlet for your creative energy, or find a different job. If the employer is large enough, then transfer to a different team. If not, find a new employer. Don't waste your passion on being angry at the people around you.
Also, remember that you may not be wrong, but you may not be right either. So, don't do anything crazy. You ain't famous enough to burn bridges.
Without a solid technical lead with a management mandate, there is no way to change the behavior (or replace) such an individual.
If you're a good developer, in such a situation you have two options:
1) Leave the job and find a new one. 2) Work with management to deal with the situation to change the person's behavior or change the person.
#2 is MUCH MUCH harder than #1 in most cases. And it's very easy to hit a wall and get frustrated with it.
If you can't switch jobs, I suggest you start working on option #2. Based on what you've described about this individual, you've likely reached the point where dealing with it one-on-one isn't going to work.
And what you really want is a fix, not to call out the guy.
But there are techniques for dealing with this. For a basic look, try Carnegie's How to Win Friends and Influence People.
The guy doesn't know what a build means, and hosts all of his code in the very same location. One folder. Yesterday, I had to remove circular dependencies he introduced because "his eclipse was not working any more :s"
Trying to find a way to solve that for a year now :s.
I mean, if it is possible for "imbecile" and a "poser" to get this job, there must be something wrong with it, your employer and its recruitment process.
Why waste energy, time and your life for problems like this one?
That's narcissism, not merely annoying behavior, and sometimes dangerous: http://arachnoid.com/ChildrenOfNarcissus
> My patience with the imbecility is at it's end and I'm ready to bring thunder down on this individual but is it ever okay for this to happen?
Confrontations don't work with people like that -- you have to get rid of them.
There's a difference.
People show symptoms and behaviors that match many different disorders when they are distressed. Psycopathy and narcissism are the two "sexy" mental disorders and people memorize the checklists just that they can "diagnose" others.
To me it sounds like typical defensive behavior. There is no need to think it's personality disorder.
Wait -- do you think narcissism is a psychological diagnosis? People have been able to identify narcissists since the days of classical Greece, if not before.
The fact that psychologists have a diagnosis called narcissism doesn't mean they own it, any more than Christians own the midwinter celebration know in Roman times as Saturnalia:
http://en.wikipedia.org/wiki/Saturnalia
> To me it sounds like typical defensive behavior. There is no need to think it's personality disorder.
That depends. If the person doesn't change his behavior and instead becomes a chronic burden on his company, then yes, it's a personality disorder, and as to the terminology being psychological, who cares? The point is to solve the problem, not decide which questionable psychological diagnosis to apply.
One of the sneakier things psychologists have done is to co-opt some traditional names for well-established behaviors, turn them into "diagnoses", then try to claim their existence as proof of the value of psychology. Well, not so fast -- psychologists didn't invent narcissism, and they don't have any effective treatments either. Narcissism is notoriously resistant to treatment or remission.
If I were in charge of hiring and firing in the company being discussed, and because of my long experience with narcissists and how destructive they are, I would seriously consider getting rid of him. More here:
FML