Pros
1. The people, all of them, are generally great and fun to work with. 2. While some amount of the development team has left, there are still really great, pragmatic developers on staff. You can and will learn a lot from them. 3. Lots of new technologies in play. You can usually get away with using something new and shiny (or old and still shiny) if you present it in a logical and useful way.
Cons
1. Serious concerns were brought up by the entire development staff. The concerns were ignored with little to no feedback. Following that, over a quarter of the development team left in under a months time. 2. There is little to no trust between middle / senior management and the developers. 3. The company is pitched as a startup, but the culture is far from it. Most of the middle and senior management has come from places like Harris Communications or other larger corporations. So, this small company tends to be managed very much along those lines. This isn't necessarily a con, just be aware. 4. As of this writing, the project management team has no real interest in working with the development team. Lots of throwing the ball back and forth over the fence. As far as I can tell, they like it that way. 5. The company is not agile. The software engineering department is not agile. I think this is generally accepted, despite that word and others being thrown around and titles like "Scrum Master" really just meaning "manager" here. 6. In reality, there is a very loose and disjointed Systems Development Life Cycle in place (read: Harris heritage). This leads to a lot of very non-iterative, big-bang projects, which our industry decided to do away with 15 years ago. This has lead to the failure of more than one large project in the past year.