Pros
- The upper management seem to genuinely care about their employees - Company keeps everyone informed on the the company goals and performance - New ideas and improvements are usually welcome and encouraged - Company swag and fun events are there to help employees feel connected (it's a nice touch)
Cons
- Work effort is not reflected in salary or title changes, these things are generally time based. Meaning the longer you work there the more you get paid (which is good), but high performance does not get rewarded (or encouraged). - Many development teams lack a leader, meaning everyone is on equal footing. This means that while conventions are frequently discussed, the teams do not have a solid direction to head in. Imagine the code base as the wild wild west, but wilder. - The large disconnect between the developer teams and product services means adding new technologies, or upgrading existing ones is almost impossible without a "company initiative", so you'll frequently find yourself trapped behind poor decisions made a decade ago.