One thing Shadowrun has never been able to do well is "end-level boss" type fights. Numbers and teamwork really matter in fights. Single enemies tend to either get taken down in one round by a group, or, if you overdo them, they will shrug off every attack and then kill the entire party. Weaker but more numerous foes who use some basic tactics (using cover, not clustering together, etc.) can be more of a challenge.
Also, characters in Shadowrun tend to be all over the place in overall experience and effectiveness. Don't try to challenge the entire group at once; instead, give each team member their moment in the spotlight. Give the team a variety of jobs and obstacles, and don't stress as much about challenging them. It will arise naturally - don't try to force it. This isn't like D&D where you get experience points for killing monsters. In Shadowrun, the optimal solution is a lateral one that avoids a fight altogether, or at least makes it an unfair one.
Enemies will do this, too. A hitman after the group will target the decker, not the samurai. A decker after the group will target the samurai, not the other decker. If they go after the rigger, it will be when he is at the bar knocking back a few, not when he is in his tricked-out van. This is why runners go to such lengths to protect their anonymity. Problems don't have to all be straightforward fights. The group can be set up as the fall guys by someone, get hit on by someone with a jealous significant other, get badmouthed by rivals, be blackmailed by a crooked cop, and so on. Having the sammie's doss get burned out and some innocents get caught in the crossfire was one good example - and the sammie's high soak pool didn't help a bit (although again, a decent soak pool is hardly the most potentially unbalancing thing out there - there are two mages on the team, and Squirrel already pointed out how tough high-Force spirits can be).