Pat shrimp dry with a paper towel and set aside in a medium bowl. Whisk together remaining ingredients except for canola oil. Toss shrimp with paste.
Heat a large skillet over medium-high heat and add oil. Once hot add shrimp and cook in a single layer. Cook for about 2-2 1/2 minutes per side until the paste starts to caramelize and stick to the shrimp.
Remove shrimp to a serving plate and garnish with lime wedges and cilantro if desired. Serve immediately.
If the shrimp are too crowded in the pan they will not brown in the time it takes to cook them. They only take minutes to cook, so cook in two batches if you do not have a large enough skillet. Wipe out skillet between batches.
Whisk all ingredients together in a small bowl. Set aside.
Cut ends off onion and peel, leaving onion whole. Cut onion into generous 1/4" slices. In a large bowl toss onions with a few drops of water to moisten. Sprinkle flour dredge over onion slices and toss to coat. Set aside.
Preheat a deep fryer to 350℉ or at least 3" of canola oil in a large pot or dutch oven to 350℉ using a thermometer hooked to the edge of the pot.
In a large bowl whisk together flour, herbs, salt, baking powder, onion powder and garlic powder. Whisk in buttermilk, melted butter and worcestershire sauce until smooth.
When oil is hot, scoop out 4-6 onion rings and dunk in batter to completely coat. Shake off excess batter and place onion rings in oil one at a time. Cook for approximately 2-3 minutes per side or until golden brown. Remove with tongs or a slotted spatula to a paper towel lined plate. Keep warm in a low oven while frying remaining onion rings.
Batter will thicken slightly if left to sit. Thin with extra buttermilk if necessary.