Pros
Great benefits Good vacation time with rollover Real offices instead of cubicles Flexible hours The following are good for some people, but they're a bit double-edged: - Hands-off management - Laid back - Somewhat flat, collaborative teams. PMs don't do much M.
Cons
Unusually anti-social Not many collaborative spaces They started cramming too many people into small offices Hands-off management (creates the following problems) Unclear expectations Unclear chain of command Lack of communication becomes frustrating and blindsiding No clear hierarchy also means no clear paths for job advancement A very small number of engineers possess all of the knowledge and do a great majority of the substantial work, making it difficult for other engineers to find their niche on projects. This creates company-wide bottlenecks that disrupt workflow for everyone else by making most engineers reliant on the handful of keystone engineers. Documentation is poor. Teams thus tend to consolidate into pairings of a PM and a keystone engineer with all other members doing small inefficient tasks. This causes a feedback loop where many engineers are relied upon less and less since it is more expedient to task the keystone engineer with everything instead since he knows every part of the system anyway. I saw so many regular engineers "rot off the branch" so to speak and become redundant due to this vortex. Morale collapses on the altar of poor organization and poor communication. No clear delineation of roles or division of labor.