Vantaggi
* Engineering-first culture that takes the time to rigorously review designs * Even junior engineers get front-seat experience with the design and review process from the start * Promotions are based on demonstrated competence at software design and architecture in general rather than shipping a "feature" * Team meetings are short, always scheduled in advance, and always allow all attendees to contribute * Management consists entirely of engineers, with a mix of internal promotions and external hires * The team manager has jurisdiction over the team's project, and higher-level management does not meddle in the team's own operations * No office politics that I ever saw in my 4 years there. You can assume good-will in virtually all cases. Everyone in my office was good-natured, mature, and professional * An incredible quantity of serious, smart, and incredibly competent people that truly inspire you to become a great engineer and do your best work every day * Very good pay and benefits * Nice offices. Comfy quiet spaces available when needed, for those on the spectrum
Svantaggi
* Relatively limited vacation and PTO availability * No free snacks or food, except bananas for some reason * Technical documentation for specific teams/services are not in standardized locations * Software given to new hires onboarding is a bit of a mess and doesn't reflect what your team is likely to be using unless it's a greenfield project. Your team is likely to be who teaches you what you actually need to know * Mentorship pipeline/program is not very good. Not enough incentives for senior engineers to take time away to do mentorship duties * Rotating on-call duties can potentially make for a lot of 3am pages sometimes * Work/life balance not amazing in general