Pros
Variety of programming projects. People I work with genuinely care about my day. Comradery inside the teams. Cross-team coorporation is picking up as the longer you work and the more people you know, more people tend to regard your word as a good consult to work they are doing. Fringe benefits are good as well. Benefits package is fair. Many of the managers (at least mid-level) regard their employees well-being and morale as what drives the company and, therefore, want to see their employees well and happy. There is a very "work-hard-play-hard" attitude to many of the smaller teams. Generally, the people you work with will also go to the bar with you.
Cons
Pay is sub-standard to the area. Coffee here is horrible. If anyone wants decent coffee, they bring it in. Very sales-oriented with many of the meetings being the bottom-line and not what we've accomplished product, service or marketing wise. Management tends to micro-manage rather than treating it's employees like they can prioritize and work their own issues better as they have inside knowledge of them. They tend to put alot on one person, then set the expectation that the individual will work overtime without pay to get the job done. They recently cut pay across the board and put a hiring freeze in place which puts many people wondering how much longer they will have jobs.