All the companies that you mentioned above have good Software Development teams. The only concern is the team in which you join. Big companies have numerous teams working on various requirements, its totally about your luck that you get to join a team that works on your areas of interest.
Make sure you discuss this before hand during your interview process itself, if you like any specific technology and plan to pursue it further. Looking at the options I would say IBM > Oracle > Cognizant would be my preferred choice.