Pros
Smart people, interesting technology, great products, challenging environment, opportunity to learn a new things from different aspects. Multidisciplinary field which enables to combine knowledge from algorithms, sw engineering, physics, chemistry
Cons
Not healthy atmosphere between team players, not suitable methodology of development which consumes a lot of time and not efficient at all. Many hours of meetings and discussions