Pros
free food, free t-shirts, free laundry, good pay. If you're right out of college, this might be the place for you, but that's mostly because you wont have much work experience to compare it against.
Cons
1) the job I got is not the job I thought I was getting: As an engineer, with engineer in the title, and over 10 years of experience, I really thought I would get to do more engineering. Unfortunately, the job is really about 50% business analyst and 20% project management, and 30% engineering. You are expected to own every aspect of your project, regardless if anyone else actually does. Also, you're told you have the opportunity to choose the team you want to be on, but for me, that choice was removed at the last minute. 2) bad management, bad leadership - all managers are expected to be individual contributors which is basically another way of saying that they aren't particularly good at either, and do not have time to devote to both roles. Also, be prepared for mansplaining. 3) more money than sense: gobs and gobs of money are being thrown around. there's basically an offsite every other week. Nevermind about work, deadlines, or being competent, it's more important to go glassblowing. The pay is nice, in fact, its the best feature about the place. 4) the company that wants to connect the world would rather loose talent than have remote workers. no, seriously. say you're on a team, and your team decides to move to another office thats like 1 hour away. you are kicked off the team and put on another team. what sense does that make? new mom wants to wfh? not allowed. Seriously, it's called skype, people. 5) and speaking of teams, the team structure is completely whack. instead of having a core group of people I work with on many projects, I have a different group of people I work with on each project. a completely different set of swe, pm, ds, and de for each project. This completely limits our ability to grow more efficient with each project, let alone build any sort of a professional relationship. 6) you're not allowed to fix things that are legit broken. I've only been here a short time and have already had to suffer fools who prefer poorly designed metrics with political bs to actually measuring things properly. bug 1 told not to fix it - too big to fail, bug 2, never got fixed by other team, bug 3, too high profile to fix. seriously? why not just admit all your metrics are wrong? 7) people care more about performance reviews than actual performance. no really, if I hear the phrase make "an impact" I will vom. What this really means is not "do good and useful work" which is how it might be interpreted, instead it means that you should very little on the very high profile projects, and then post it everywhere, to make sure people NOTICE. Also, keep a log of your work so that you can share it with your absentee manager come review time - otherwise, he (yeah I said he) likely will have no idea what you worked on or why. But, instead of this being a meaningful signal, it just becomes more noise.