Pros
1. Senior staff is very sane, calm and collected, collectively possessing a lot of breadth of technical expertise, so there is a lot to learn.
2. Projects typically gravitate around solving scalability problems regardless of languages and technology which is a nice challenge. Sometimes requires to re-architecture parts of a system to achieve the goal and the team is in the driving seat.
3. Much less bureaucracy and much more flexibility than you would get in a corporation.
Cons
1. Company is young so some practices are yet to be established (can look at that as an opportunity too, if you want to drive practices)
2. Client teams are small commando teams who go in and fix or develop a particular system. If you want to work with multiple teams to drive huge programs this is not the place to be. On the other hand the smaller teams have more autonomy and can move faster, so for some this could be a plus.
3. The open-space office doesn't have enough collaboration spaces. Half the meeting rooms don't have whiteboards and the markers are often empty - something that's easy to fix but isn't in a good shape at the moment.