Pros
* Development teams have a lot of flexibility in the technologies they use * Moving to a MicroServices architecture - it's working! * Agile methodologies are the way of life * They try hard to build a good product * The engineers are smart and good to work with * Culture is fresh and fun - lots of parties and activities, food, fancy workplace * Benefits are great (although paid leave is pretty skinny)
Cons
* While they want quality software, they often don't invest in the development infrastructure necessary for it to happen * The fast pace and high pressure tends to burns out engineers * The vast majority of engineers are just starting out in their careers, they could use some more experienced people * Management doesn't really know what to do with senior-level individual contributors * Good work can be unappreciated when it's not on sexy stuff * Having each dev team be responsible for their services running in production encourages the building of robust software, but when a small team has to babysit hundreds of servers day and night, development falls behind * Engineers often work evenings and weekends to meet goals (usually from home) * Being on-call is sometimes brutal. It's no fun getting awakened in the middle of the night because a disk somewhere is more than 80% full.