Management will try to force you to learn whatever technologies are in demand with the client, no flexibility to choose based on your interests. These are often outdated, not really programming, and overall bad for your career progression.
I didn't agree to regular travel (my company was bought out by Avanade and had low travel expectations) but am being forced into it anyway.
They claim that transparency on the projects they have available is nice since it lets you find projects you're interested in, but in practice it mainly allows them to put the blame on you if you don't find a project quickly enough. It feels even worse than actual job searching, since I feel like I have to choose between either applying for a travel position when I don't want to change cities or barely applying to anything and being told I'm not doing my fair share.
They have a "chargeability" target of 90% for most people that affects your year-end bonuses. Effectively, this means that they expect you to be on the bench no more than 5 weeks of the year. No problem for people with long-term projects, but difficult if you have shorter-term projects or get unexpectedly rolled off a project so you had no chance to look for something before your last one ended. I get the idea behind it, but it sucks to not be eligible for a bonus for things out of your control.
Attempts to move people out of projects they hate seem to be minimal, and they get told "at least you're not on the bench." I get it if there's only a couple months left, but if there's another year?