If you like a freelance like dynamic without the uncertainty and frustrations
Pros
You get to decide when you want work (besides the occasional odd meeting time due to clients being in different time zones) and have a lot of say on the type of project you want to work on - with a lot of different and bleeding-edge projects. You need to talk directly with clients and can often face difficult technical challenges - but can count on managers and coworkers when things get frustrating. Overall, it really feels like you are working with the company and not for it. The leadership makes a point to have happy and satisfied staff - with regular events, conferences, a comfortable office arrangement with weekly office brunches, and team-building sports. The hiring process is very strict - you need to pass both technical and cultural tests - meaning that the people you get to work on projects with are sure to be competent and agreeable.
Cons
As we're working on the bleeding-edge things change fast. You need to adapt quickly - learn a new technology or a new language and sometimes just feel frustrated since a project did not go as you hoped - you are directly responsible for the success of the project and it can get overwhelming at times.