Pros
Exposure to a variety of different technologies and languages. The people you work alongside are great, hard working, and smart people.
Cons
The people you work FOR, on the other hand, are a different story. There is a severe lack of trust from management for anyone but themselves and the select few who will do anything for them. Morale is horribly low, and the only "solution" provided is to take teams out to random lunches. No matter how many times concerns are brought to management, they refuse to listen and instead opt to just cover for each other. There isn't much room for promotion. You go from engineer to "team lead" (to which there is no benefit to actually want). There are also only 6 holidays a year, one of which is Good Friday (But there is a decent amount of PTO to start).