I work in a corporate with ~2000 employees.
We are a team of four developers, lead by my supervisor. I have been working very hard for 4 years, including unpaid weekends and overtime. My work has always been praised and distinguished for high quality & user experience. My performance has been excellent for three years in a row, though I have never been promoted.
The problem is my direct supervisor.
She has never showed any respect or support to my extra effort for the company. Whenever I am staying after work she presents it as poor time management. Whenever I pay attention or respond in time to our "customers" (colleagues from other teams), she starts yelling about the deadlines of my other running tasks, though I have never missed a deadline since the start.
She tries to exclude me from all communication with other teams, sometimes I I get to know important news "accidentally" from phone calls or informal conversations with other colleagues.
She never ever supports me for technical issues. Whenever I have asked her in the past for anything technical, she starts yelling, telling that it's part of my job to investigate and fix unknown problems, or make decisions accordingly.
When my manager (her boss) assigned me as project manager for a side project--my initiative, she was overloading me with other tasks and then complained to the manager that I was getting tired and wasn't 100% dedicated to those tasks. Whenever a change request comes for development for this system, she assigned it to other team members, claiming that "someone else has to do the job, in case you quit the job".
She never ever praises me in front of other team members. I had a presentation of my developments to the stakeholders. They started applauding me in the middle of the presentation. She stopped them by literally saying "you are only applauding him because he is a guy (I am the only guy in the team), all of my developers are working equally, luckily I am the one who will evaluate their work".
I can go on forever. The thing is that I don't want to quit the job, I really like the company, the management and everything else. But, I feel very frustrated in my every day job. Also, I don't think she appreciates the fact that I am trying to distinguish myself, making my promotion impossible.