Pros
The SW team is a high quality group of engineers... probably the best overall group I've come across in my career yet. There seems to be a mostly healthy work/life balance. Hard and intense work, but not too many crazy expectations or all-nighters. The best part is the set of problems we're working on: * SW to help a fleet of energy systems interact most optimally with the energy grid; * customer engagement tools to improve the adoption of solar across the country by lowering customer engagement costs; * system design and modeling tools * energy grid data analytics Overall, it's a pretty wide breadth of SW challenges in one company: web front-end, web back-end, control algorithms, cloud infrastructure, embedded systems, mobile apps. Mostly there are good SW dev processes in place: code reviews, unit testing, continuous integration to name a few. Finally, the company seems to have a pretty consistent business strategy. No random swings from one priority to the next and projects scrapped due to managerial whims as I've seen elsewhere.
Cons
Compensation is fair to good... but it's not Google, Apple, Facebook. And the quirky SW industry benefits which some of the big boys can offer (free food, laundry, haircuts, massage, etc) aren't to be found here. The SW dev practices are pretty good, but in some cases/teams/projects just being implemented. Always room for improvement there.