Pros
There is the opportunity to work with many different people and projects, though sometimes a project can be extended and you get stuck. There are some good people to work with here, and middle management is generally close enough to projects that they don't get out of touch with the day to day of the consultants.
Cons
There is way too much focus on getting a job done, not in getting it done right. Software design is only considered to the extent that it makes a program work, not in making it easy to maintain. Good software practice like version control, continuous integration, and issue tracking are ignored. Work-life balance is good from Perficient's perspective. If you perform well they are happy to let you take time off or work around your schedule. However, they are also very happy to let the client abuse your time, so if the client wants you to have a nonexistent life outside work that's how it will be. Perficient considers you simply a product the client is paying for. If the client pays, they will not put any limits on demands.