* Fundamentally an operations driven business model. The late-startup and enterprise clients who make up the bulk of the business pay the big bucks to maintain software and make minor improvements to meet internal operational objectives, and even if they are interested in technological vision or novelty, their budget isn't allocated for it, because if it was, they would figure out a way to build their team internally. This means that the timing of projects is often held up on client issues, and the nature of the projects is pretty predictable if and grindy nature of the work is your idea of a great job setting (for example, if you want to really master your working efficiency), then this might be a pro, rather than a con. * Engineers are strongly encouraged to go through management before reaching out to clients, which is understandable, given how difficult client-contractor relations can often be, but it can make it difficult to build a personal understanding of client's needs.