The primary challenge is that the volume of work that comes in and needs to be juggled, often times with a short schedule but insufficient clarification, can be frustrating at times. We have a lot of active clients and often times we are both trying to understand business processes as well as figure out the technical pitfalls of one, when a more urgent request comes in from another, which requires all the mental work to be unloaded and re-loaded. It's not all the time, but it can be challenging, particularly as we often have direct phone and email contact with the client including those in production capacity.
There is also a high learning curve to the workflow process and independence, though disappears with experience. For example, work may be handed off with a few sentences for a client with whom you have limited interaction with and there's an expectation to "figure it out" and come up with a solution, which can make it a tall barrier early on. It can take several months of work on a single client to feel like you've figured it out, and if you've got 4 or 5 clients crossing your desk every month, it can be overwhelming. This is something both management and the senior developers can improve on.
The benefits are on the more limited side. There's no 401k, but there is a SIMPLE IRA with contribution %s, which is close; there's also no HSA or FSA, and while there is a group policy for health care, it's on a "pay and partial reimbursement" basis - I'm not on that plan, so I can't speak to the pros and cons of that. With that said, I find the hours/pay/environment make up for it - a previous company I worked for was one of the top Fortune companies with exceptional benefits in all areas, but it's balanced with the other aspects of large and involved companies.
This is a small company - if you're looking to develop code, manage projects, client interaction, learn new software, it's great; I don't see this as a direct transition spot for project management careers (at this point).