Pros
Free snacks, decent PTO and sick time.
Cons
Company has really declined in terms of being a good place to work as a programmer or a QA in the last year or so. It used to be fun and positive here, but things have deteriorated since a change in management last year for the engineering department. The current state of affairs is that a poorly executed, misinformed and over-zealous push towards agile dogmas has more or less wrecked our ability to deliver. Mostly what we do now is sit in agile meetings all day sharing every micro detail of what we plan to build like we're a bunch of babies - there's no more developer autonomy and empowerment. I can't solely blame the new management, since many of the issues were there before but got 100 times worse under the new regime. Some of the existing middle management in both the development and QA departments seemed to go into paycheck preservation, brown-nosing mode as soon as the new upper management came in. Management ethics here are questionable. There have been cases in the past of development management hiring friends who weren't qualified technically. They will toss people under the bus to look good to their superiors. The newer managers are mostly inexperienced, haphazardly promoted former QA or devs who don't really have any business being managers at all. There's no legitimate technical management at all - the company's handful of senior technologists don't have any reports. The rest of the managers are just "people managers" and don't actually produce anything for the products. So you never have any kind of unifying party to sort out technical debates decisively. Aside from the management breakdown, the software is a mess. There always seems to be a new "super highest priority project ever" with devs and qa pulling long hours only to be looked down upon in the end because the project was a bad idea in the first place. It seems that every few months there's a new push to adopt a new web UI technology. Problem is, this has been going on for years and they never actually complete a product-wide transition to a new UI technology - they won't allocate time or budget for it. So each time this happens there are a few pages added which differ from the rest. In short, the web products are are built from a complete hodgepodge of random UI technologies. And get this: they're about to add one more! Clearly there's a lack of learning from mistakes going on here.