Pros
-Arguably better than being unemployed -Coworkers are mostly friendly
Cons
-Salaries trail far behind market rate -Lip service is paid to process, but there is none in place -Severe communication problems between product and developers (not being told that demos go live, poorly defined specifications, etc.) -Impossible to stick to agile methodologies, as developers are constantly pulled away from scheduled work to put out fires (most of which are created by poor management/communication) -Poor delegation creates bottlenecks, many things slip through the cracks -Lack of transparency from management -Some managers are outright disrespectful, and lack the ability to communicate like adults -Extremely high turnover rate within engineering -Lack of employee appreciation -Estimates of project duration and difficulty are given (without developer input) by 'technical' managers that have very little familiarity with the code base. Unsurprisingly, they are always ridiculously over-optimistic and developers are expected to deliver under those estimates -Very few senior engineers (likely the result of poor salaries) -Employees who decide to leave are vilified, and mistreated during their 2 week notice -Very low morale