Ventajas
Most important: Positive impact on millions of students and teachers, as advertised. Good management sets clear goals and empowers the team, delegates well, rarely micromanages. All code is open-source on GitHub, which feels good and makes a great addition to a portfolio. Lots of opportunity to contribute back to the open-source community as we work. Continuous integration with automated testing allows us to ship daily, and we're always improving our tools and automating more. We own what we ship, and rotate responsibility for deployments and live-site issues daily. Typical dev is on call one day every couple of weeks, very rarely gets paged. Pay and benefits are more than appropriate to local cost-of-living, have adjusted accordingly over time. Very flexible work-from-home policy.
Desventajas
Agile devotees may feel unwelcome or at least have an uphill battle, as we practice agile only in the loosest sense: We rarely pair, don't estimate consistently or define acceptance criteria, don't use scrum or kanban, have surprisingly long "stand-ups," and I barely notice when our sprints begin and end. The team is open to gradual change, but wary of formal process in general. We're a fairly small, flat team, spread across several large projects. This means lots of opportunity for personal growth and ownership, at the cost of often being isolated on a project. Mentorship does not come naturally to us yet (though it's available for those who seek it out) and those particularly motivated by the prospect of a promotion may be frustrated by our flat structure.