Pros
I really enjoyed the people I worked with. I worked with some of the smartest, hardworking people I've ever met in my career. Management let me completely handle client engagements. Management is very hands off, only getting involved when there is a problem. You don't need to report to an office to do the job, and you can manage your time however you want for the most part. As long as you are meeting your deadlines and responding to the customer, you don't need to work 9-5. If you are ambitions and like working a lot of hours, you can easily hit your bonus targets. They used to pay out year-end bonuses that were decent as well. Not sure if they still do that or not. The company had a family feel to it. They're small enough so that I never felt like I was treated like a number.
Cons
Health insurance benefits are not great. They are a smaller company, so they have little leverage to get rates like the bigger consulting firms. They are a consulting company, so my salary was somewhat fixed while my bonus structure is based on how many hours you bill in a given quarter. This is great when you have steady, long-term projects that lasts months, but can be impossible to hit when you have many little projects. If you don't know how to fairly estimate your work, you will get stuck with a lot of non-billable time. My advice is estimate high and fight for your estimate. Customers will try to knock it down, and management will sometimes side with the customer. Everyone in management is focused on getting new business. The focus rarely is on keeping existing customers, and this has bitten them many times, when unhappy customers leave. The company has been aggressive with acquisitions, and has grown a lot over the years. Their primary focus is to become a business partner with as many companies as possible, and sell packaged solutions where the customer needs installation and/or configuration changes. If you don't want to spend your days fiddling with another company's code, best to look elsewhere. Management structure is small and flat, so don't look to get promoted here. Since every consultant gets a set of customers to support, you'll end up juggling calls from multiple clients. And you'll need to log every quarter hour in a time system that's from the Eighties. If you don't like having to keep many plates spinning in the air at one time, go work for a customer instead. Depending on the customer and the software involved, you could get stuck supporting older code.