Step 1Make the charmoula spice blend: Using a mortar and pestle, or in the bowl of a food processor, grind the garlic and ginger to a paste. Add the chopped parsley, cilantro and lemon zest and coarsely mash. Stir in the lemon juice. Stir in the paprika, cayenne, cumin, bay leaf and saffron (if using), and grind to incorporate. Stir in the salt.
Step 2Place the shrimp in a large bowl. Add the charmoula blend, tossing to coat the shrimp completely. Cover the bowl and refrigerate the shrimp for 15 to 20 minutes to marinate.
Step 3In a large, heavy-bottom saute pan or Dutch oven, place the marinated shrimp and the charmoula blend in a single layer. Add enough oil to completely cover the shrimp.
Step 4Place the pan on the stovetop over low heat to gently cook the shrimp. After several minutes, the oil will begin to bubble gently. Continue to cook the shrimp just until firm and opaque, being careful not to overcook, 20 to 30 minutes (timing will vary depending on the heat, thickness and diameter of the pan). Remove from heat.
Step 5Serve immediately, or set aside to cool, then refrigerate the shrimp (place them in a large glass jar or bowl and cover with oil). The shrimp will keep up to 5 days, refrigerated.