Pros
* Free food * Above average compensation (but yearly increase % is minuscule), stock options, employee stock purchase plan, etc. * Free mobile phone * Commuters/gym benefits, etc. * Incredible technology stack (both software and hardware) to play with.
Cons
* Poor management, for instance, you have non-technical and/or inexperienced managers leading teams of engineers. Middle managements block the flow of information from the top. Progress reports only go one way -- from the bottom to the top. You never know what your managers are doing. * Zero opportunity for promotion and recognition unless you suck up to the manager and he gives you a nice QPR rating. It doesn't matter how talented you are and what you contributed to the team. As long as you are a smooth talker and can kiss the manager's rear end, you're in good shape. * QPR leads to favoritism and low moral. Team mates are now competing against each other instead of collaborating and sharing ideas. * Repetitive weekly status update meetings. I thought Marissa told the entire org no status update meetings. You spend more time preparing for meetings than actually doing your work. * Low pay % increases - don't expect to get a salary increase for the hard work done. * Despite efforts to improve execution, decision making is still as slow as a crawling turtle.