Pros
Coworkers are great. They make it a fun place to come in and work. Interesting projects with challenging and constantly varied tasks. You get to wear a lot of hats and the fast-paced environment will really put you to the test. It's great if you like to dig in and get your hands dirty and learn. This is a company where you will need to figure things out on your own, you won't have your hands held so it's a good place if you enjoy a challenging environment without a lot of structure. The company tries to keep a start up culture with ping-pong, beer kegs, Fireball Fridays (yes, you too can do shots in the office!) and quarterly awards parties.
Cons
You are expected to be up to speed in unreasonable amounts of time on products that take a long time to master. You will often be put in front of customers as experts when you are new, this can be really difficult if you are a person who isn't good at being dishonest or like being on the spot. There will be very little leadership or guidance. If you are a developer you will need to split your time among many projects. The split time is not done in a way that actually contributes to the overall completion or success of the project but simply to sum up total hours so management can report that all employees are billable and that all projects have staffed hours even if tasks cannot be accomplished in those hours. I found it difficult to work with a management team who had never worked in software development. Your manager will not be technical, she will not understand the technical problems you are attempting to solve and it creates a lot of unneeded chaos for working across multiple projects. Additionally, there is a lot of very dishonest business practices that staff is asked to partake in. This made the work environment very uncomfortable to stay in long term and makes it hard to feel like you are giving customers a good and valuable experience.