For the marinade: Zest the oranges and limes into a bowl. Juice the oranges and limes into the same bowl. Add remaining marinade ingredients. Whisk together, then add the shrimp. Refrigerate for about 1 hour (try not to go over, as the acid will start to “cook” the shrimp).
At this point I make a pot of rice, couscous, or quinoa (instead of cooking the grain in water, I cook in vegetable or chicken stock).
To cook the shrimp, remove from the marinade and either skewer and grill, or saute in a frying pan with a little olive oil. If using a pan, pat shrimp with paper towels first so the extra marinade doesn’t scorch in the pan. Remove shrimp from grill or pan and set aside.
Pour remaining marinade into the pan and cook until reduced by about half, about 5 minutes.
To serve: cover a plate with rice, couscous, quinoa, etc., or a bed of greens. Top this with the diced avocado, then the shrimp. Pour sauce over entire dish. This dish can be eaten hot or room temperature.