- Majority of engineers are on visas. Technical communication is already difficult, but I often found that I could not understand the words coming out of my co-workers mouths. I'm all for diversity, but the severity of the situation impacted my ability to do my job effectively
- On some teams, the tech being used is extremely old (20+ years). You will likely be exposed to many technologies that will be unpleasant to work with and would just waste space on your resume
- Weak engineering team across the board. Lots of dead weight that could trimmed and replaced with more productive people. There are a couple "senior engineers" that I consider to be wholly incompetent. Some of them might be good developers if they kept up on modern technologies, but they are mentally stuck in the late 90's/early 2000's. This is especially true for the more senior engineers. Impacting change is particularly difficult
- Not a single good manager - they all range from mediocre to downright bad. I never felt that I was on the same team as management.
- The nature of our deployments means that we can't use agile development methods (or any modern development methods, for that matter). No matter what management says, they are stuck in a waterfall process with a QA team outsourced to the other side of the world
- Generally short on staff; every projects seems to just barely get through on time, if it goes out at all
- Pay is sub-par at best, and management will outright lie about this fact