Pros
- Generally friendly work environment - Encouragement to own your code (few examples where legacy code was "off limits") - Openness to branch out, experiment in your work. - Somewhat flexible work hours. Team dependent, but most managers are usually ok, especially if you have special circumstances. - Reasonable salary with decent growth (in the experience of a new-grad up to 5 years experience at least). - Opportunities for good stock and cash bonuses (can possibly add 50-100% to salary after a couple years, in my experience.) - Pick Windows, MacOS, Ubuntu for your laptop (you're remoting to a Linux server for most stuff anyway) - Improvements to development tooling infra is improving (though is subject to all the strains that come with medium size companies) - Remote work setup is technically very good when you can't be in the office (provided you have a good internet connection)
Cons
- Employees in different time zones can cause strain on teams/projects - There is some expectation of outside of typical work-hours work (mainly due to time zones), though fortunately this doesn't necessarily translate to "overtime" work (you could just flex your work hours). - Health benefits are so-so (at least I'm told from more senior Canadian employees). - Diversity is somewhat lacking (a plague on the industry as a whole).