Pros
* very technology driven company, senior management have attention to technical solutions and details, not simply powerpoint and managing-up game * senior and mid-management in technology have genuine intent to improve and build a great organization * lots of technical talent, some home-grown solutions are quite advanced. Yes there is legacy technology and much of it, but there is also much new technology used, and the migration from legacy is ongoing * Not everywhere but in many places there are great technological challenges. Some of the applications require thousands (!) of power servers to run. High load applications that need to be refactored in order to meet the demand, etc. * great career opportunities: regular promotions, etc. Most of the senior management in tech come from the developers' stock * great compensation * great food in the office * really diverse organization (and also quite young): all nations are welcome, skill is king
Cons
* still much legacy code, but as I mentioned, there are programs in place to phase it out * Not a con but worth knowing: the teams and business units are VERY different within the company. One may be dealing with a lot of legacy and morale can be quite low in one corner, but it can be all new technologies, good morale, etc in another corner. The topics and technologies are also very different: from backend high-load applications to new experiments. Work-life balance is also very diverse - depends on where you are, some teams are under strain, some not. * As in many companies, the technology does not have as strong voice at the table as business. So technical decisions and priorities (like technical debt) are overrun by the business programs - not always, but often.