I'm having some trouble dealing with a talented, but difficult & overly-critical coworker, and could really use some advice. I have worked with -- lets call him "John" -- for a little over a year on a very small engineering team. He joined the team about a half year prior to me. John is one of the most intelligent engineers I have ever met, and has very strong technical skills, however socially he can be quite abrasive and blunt/rude -- not only to me, but to other employees as well. I know t...