I don't know yet how fair the promotion/raise process is, but I do know that employees are only considered for promotions once a year, and even after finding out whether one is promoted, it takes months for the status to actually kick in. Also, so many people are involved in the decision of whether a person gets promoted, that it's hard to know if you're even on the right track - supervisor feedback alone doesn't help with that process as much as it should in that regard.
Also, it makes sense for a company to be concerned with utilization (amount of time billed to projects, as opposed to training or other non-billable activities you're still paid for), but for some employees, the required utilization is too high to be realistic (up to 90%) as it gives no room for training or working on projects that don't have a contract yet.
Employees below a certain grade get far fewer benefits, and can't hold shares in the company, even though it's "employee owned." Unless you come in at a fairly high level, it typically takes many years to get to that grade. I know a few people who have left the company because they felt they were not able to advance in their careers at a pace they felt was fair, however, it seems that they did not communicate these frustrations to their supervisor - the situation could have had a happier ending if they did.