Where to start? Upper management is dishonest and uninterested in employee happiness. When work loads get heavy, the approach is to intentionally lowball contracts and then expect employees to work 60 to 80 hour weeks and weekends to meet unrealistic deadlines. These hours are not compensated in any way. After a few weeks of it, you might get a comp day if you are lucky. That's it. Developers are seldom asked for their input on timelines and routinely ignored when they express concern. When a personal scheduling conflict arises that prevents you from working until 1 AM, expect to be openly shamed at work the next day for not being a team player. Literally you will be asked to work until 1 or 2 am for days at a time at some point and if you call it a night at 12 one day, you will be called out in front of everyone the next day.
Many of the PMs on the open source team are difficult to work with. Communication is poor and developers are treated like tools instead of people. Developers are left in the dark a lot and thrown curveballs in terms of work expectations. Management tries to be your friend to earn your trust and then misleads you. A couple of the PMs are liable to throw developers under the bus to make excuses for their own mistakes.
On the .NET team, the problem is the opposite. Everything is micromanaged to the extreme. The whole team is handcuffed to agile approaches even when they don't make sense; you will spend more time in meetings than actually working. This doesn't change even when deadlines are rapidly approaching. You'll be expected to spend hours in meetings and work late instead of just working during normal hours. Despite being asked to always point out ways you think the work process could be made more efficient, bringing up this point out of concern will get your outright punished for questioning your boss. This despite the fact that end of year evals explicitly list this as a responsibility employees should strive to meet. Some of the PMs are dishonest and very passive aggressive. Lots of politicking goes on behind the scenes. PMs act like they are better than developers and treat them like children. Some of these developers are in the 40's and 50's and having been working longer than some of these PMs have been alive. Serious lack of respect.
All of the above might be tolerable except for the fact that you also will never get a raise. Not cost of living, not merit based, nothing. You can work at Ciber for 5 years and you will make exactly what you were hired at. As a matter of policy, raises are not given, ostensibly because the company overall can't turn a profit. Once or twice a year someone from way up high in the organization will show up in their expensive suit and blow smoke about Ciber's efforts to change culture and how they will change this policy as soon as the company becomes profitable, but then the next thing you know that person was fired. Promotions aren't much better, you might get another word added to your title if you let them abuse you enough, but it's meaningless and all real senior positions are filled from outside the company. Even promotions don't come with raises, and if you ask for a raise you will simply be refused and given a meager excuse.
Bonuses are a joke. Every year you are supposed to get a bonus based on merit. However, your bonus is cut based on other departments' lack of performance. In other words, they take money out of your bonus because people somewhere else in another city underperform. You have no control over this. They go out of their way to tell you how much they were going to pay you and how much they kept instead. Everything else being the same, it seems like it would be smarter to just give you a lower number to start with instead of acting like you were going to get more and then snatching it away at the last minute.