1. Good management treating employees as assets. They invest in their employees.
2. Good company culture
Cons
They need to be streamline and filter their hiring process as after spending few years there I have found some really technically incompetent people have been hired which have led to major project failures.