Pros
The company is growing at an impressive rate, and the on-boarding process is finally starting to take shape. It has excellent benefits and great job security. You are not removed from the company simply due to a lull between contract periods. There is likewise excellent documentation within their hardware and software. This typically makes interpreting software implementations a very simple process. Software engineers are similarly brought on and immediately introduced to
Cons
The pay is only average, which would be acceptable if the opportunities to advance weren't so few in number. They still use an antiquated performance evaluation model which is largely dependent on your relationship with your manager. It is similarly dependent on the success of the project to which you are assigned. If you are assigned to a successful project, you will be moved up in the company. However, if you are assigned to a failing project, you will work endlessly without appreciation or capacity for lateral movement within the company. Supposedly, the company encourages flexible hours with the opportunity to work from home. In practice, you will often put in over twenty hours of unpaid overtime a week, only to be told that you 'may be working hard but you're not working smart'. Upper management likewise lets mid-level management performed unchecked, and refuses to listen to any complaints of abuse or aggressive behavior.