Pros
It is an extremely fun/comfortable work environment to be a part of. The people there are generally very nice, and everyone is very willing to help each other out. For the most part, management seems to genuinely care about you as a person, and listens well when you have issues.
Cons
Although it is nice how casual things can be there, when it comes to their code it is casual to a fault. The code they produce and the standards/processes they have in place feel absolutely lacking. Because of this, I do not think it is a very great place to learn and grow as an engineer. As for their compensation, it is well below the industry standard, and unless you are willing to make far less than you could almost anywhere else, I would not recommend working there. Another major issue I had was the way they dealt with time tracking, as it is an hourly position and you bill your time directly to the client you are working on. At almost all times, you are required to be billing time to clients and not to fjorge themselves, even when you are spending hours in internal meetings. This means that you are billing time to clients despite working on internal matters that have nothing to do with them. They say to divvy out the time spent in those meetings evenly among the clients you worked on for the day, but some of those clients only have a couple allows allotted to them each month. This means that a good portion of the time they paid for is now wasted, and to me it felt very wrong having to do this. In my time there, I saw that many employees simply worked off the clock because they felt so bad billing that wasted time to clients, which absolutely should not have to happen. They are growing quickly, and I can imagine that someday they will start to meet better industry standards, but at their current state I cannot recommend a career there.