Pros
There are some great people working as team leads that are the redeeming factor of the company. If you're lucky enough to get a good team lead, your time here could be okay. Work life balance tends to be really good. Working late seems to be a rare occurrence on most teams
Cons
Very little - No technical training. Starting here as a new hire or starting a new project can be extremely overwhelming. You're basically given a task and thrown into a stack/codebase with very little context or explanation. This combined with low employee retention means that there are often projects where even the senior engineers don't know how anything works. Often the "expert" on the system was given just a little training as you got, and you're all just reverse engineering some monolithic codebase. Constantly changing specs and priorities. Expect to be given work before the design phase is complete, thus repeating it again later. Expect to have high priority tasks come out of nowhere on a weekly basis and throw off your whole timeline. Low pay. This generally sucks if you're an employee. But also has the side effect of causing alot of people to leave, so many old systems have none of the original people left who worked on them (a big cause of confusion). Management has been "looking into salary adjustments" for the last 2 years, but those adjustments are always 6 months away, ad infinitum. One can only hope they'll conclude their salary market research sometime in the next decade.