Pros
Working with some very intelligent and competent coworkers is quite rewarding, especially within the software engineering group. The pay is also comfortable, and as a full time employee you get decent benefits and a nice contribution to your 401k.
Cons
Despite the few number of intelligent and competent coworkers that you might get to work with, there are others who don't seem fit for their position or are poorly managed. A technical writer for instance is given responsibility for working with a designer to determine the final design for a product. The company is customer centric so customer demands often change priorities which often results in everyone dropping their projects and focusing on a new request. These new requests, though, have to go through a series of different departments for handling requirements, payment, engineering, etc. and I've personally found myself doing work due to customer demand urgency but then holding off due to the fact that the work was not actually paid for. Other instances include receiving emails flagged as important for customer requests that don't actually get addressed until months later. A lot of work is allocated to third party companies which adds layers upon layers of more bureaucracy to manage. Schedules seem to vary from position to position. Contract workers and hourly workers typically work their 8 hours but often times other program managers or project managers can find themselves working 12 hour days whether they are salary and hourly (without extra pay) due to international calls or issues with the program. Outside of the marketing group, the company does not seem to understand how to properly utilize graphic and ux/ui designers.