This is hard to explain, so I will start with my background. I have been in development for about 8 years (6 commercial), have a MSc in OO Info Systems, have a true passion for development and up until a year ago would spend most of my time learning new things and creating helpful applications for the team.
I work at a large investment banking company and this new developer who used to work for one of the larger investment banks joins the team, lots more experience than me, more professional etc... etc...
Initially I helped him out when he started (ALOT), my attitude up until recently is a team effort everyone helping each other out, but I think he saw this as a weakness. I was the big cheese up until he arrived, and in hindsight and in present time he now is.
We clashed because I take the object-oriented route and focus on good design / documentation etc... whereas he prefers not to do documentation and sort of hates OO prinicples, he would rather create a nice interface than good code, next to no comments, doesn't like unit tests, doesn't like interfaces/abstract/inheritance etc. The problem is what he is good at is pleasing management and I have to give credit where credit is due.
Now after 6 months he tried to always surpass me, take my code ideas and call them himself, snipe behind my back etc.. and eventually won favour with the developers and increasingly began criticsing me.
I'm now at the point where I am very stressed out because everyone has become hyper-critical of my code but when he or someone else makes a mistake or an error its quickly forgotten. Ergo the pressure is very much with me.
I'm not used to this situation and wondered if someone out there has come across this and has advice on how to tackle this situation? Or can share a similar experience that might be useful