Vantaggi
* Nice benefits (aside from pay), comfortable office * Ability to work with a variety of technologies that improve customers' lives.
Svantaggi
* Us vs them mentality between software teams. You will often hear comments putting down the manager and engineers of X, Y, or Z team, their code, and their products, especially on shared projects. * "Not my problem" culture where people often race to do the minimum amount of work possible and avoid taking ownership of the projects they are staffed on. This also shows up around the office as people regularly fail to clean up after themselves in common areas. * Terrible planning and project management. Lots of product specifications are poorly thought out and often incomplete before they are handed over to software engineers. Projects are often overzealous in scope and timeline. * There are often only 2-4 UX people employed at a time (when there are significantly more software engineers) and there is a high turn over rate. This means that projects push forward without a clear, thought out design, resulting in frustrating UI as project managers take on the work instead despite their lack of training in UX or experience. * As a Software Engineer your responsibility and workload varies greatly depending on which team you are on. * No clear path for advancement. Becoming as Senior Engineer on one team may have arbitrarily higher or lower requirements than another team as it is up to each manager's discretion. * Pay is not really competitive with other companies in the area.