Pros
Projects are abundant and very interesting; an effort is made to apply cutting edge technologies and ideas when possible, and co-workers are so engaged and talented that I had many opportunities to gain industry and technical knowledge. Additionally, the team structure, internal organization, and configuration management tools that have been set up make the software development process run smoother than I've seen at any other software contracting company.
Cons
Inter-project communication could be more frequent, to let employees know what the rest of the company is working on.