Pros
* Open Source culture, meaning that everything is published in public repositories (like GitHub) * Transparent decision making process (in my team, at least) * Innovative and interesting tasks * Ability to work with people from around the world and exchange ideas * Most tech positions can be performed from home * Did I say Open Source culture already?
Cons
* It's not uncommon for interesting projects to get killed in favor of an acquisition (liveoak vs. feedhenry, apiman vs. 3scale, just to list the last 2 examples) * Lack of a "central architecture team" leads to the situation where the company has N solutions for the same problem, each with its own specificities and focused on a different "niche", instead of a single comprehensive solution. * NIH-syndrome is on a per-team basis, meaning that teams would usually prefer to create something from scratch rather than use something developed by another internal team. This kinda defeats the "open source culture" from the "pros". * Sometimes, it feels like the teams are too big, and that there are "too many cooks" (specially managers).