Pros
I am wracking my brain and I can't think of anything specific... free coffee? A $.50 soda machine? Parking is ample. Benefits are adequate. Most people on the teams are cordial, if not friendly. We were supposed to have 4pm work stop for beer every other thurs but this ended up being about once or twice a quarter. Most people just go home.
Cons
Low pay, unreachable managers with unreasonable expectations, everyone has their own agenda. Managers keep hiring young people with little team experience because they work cheap and don't know how things are supposed to work. This used to be a nice place to work, until people started to leave (the money-to-work ratio has never been high) and management changed significantly. About half the people who were in various roles in the company (of around 30, give or take) when I started have left or been forced out. The churn in sales has always been as high as the expectations, but the same unreasonable expectations have infected development, and now the churn there is just as high and the resulting chaos is reaching unmanageable levels. People are leaving in droves. Pay has always been low, but as people leave, positions are not backfilled and the survivors are forced to take on multiple roles in order to keep moving forward, so you work for your initial low pay but do the work of two or three people. And then, when sales are low and resulting bonuses are low, your performance evaluation is suddenly less positive, but you're told not to worry about it, everyone's evaluation took a hit for the same reasons, even if you personally have no control over those reasons. Nothing you do matters, and you will receive nothing you ask for unless you are one of the chosen few that management inexplicably loves. Upper management is happy to ignore the problems as long as specific 'can do no wrong' middle management has all the right answers for why nothing is getting done, meanwhile middle management is busy playing favorites, forcing sr people to leave for nebulous reasons, and badly implementing new 'process' parts that are poorly understood by all involved. Often these would only be portions of a new process, with whole pieces meant to make the process work omitted. At no point is the team consulted or their wishes taken into consideration. Morale is extremely low, and no one is listening or seems to care. It won't matter too much if people keep leaving. there won't be anyone left to complain or do the work.