Prepare the shrimp by rinsing and patting them dry with paper towels.
In a large mixing bowl, combine the flour, cornstarch, baking powder, chili powder, minced garlic, salt, and a pinch of pepper if desired. Mix well to evenly distribute the dry ingredients.
Gradually pour in the cold water while whisking to create a smooth, thick batter that coats the back of a spoon. The batter should be slightly lumpy but without any dry pockets.
Heat vegetable oil in a deep frying pan or pot over medium-high heat until it reaches about 350°F (175°C). You can test the temperature by dropping a small bit of batter—if it sizzles and rises to the surface, it's ready.
Dip each shrimp into the batter, allowing excess to drip off lightly, then carefully place them into the hot oil. Do not overcrowd the pan to maintain crispiness.
Fry the shrimp in batches for about 2-3 minutes per batch, turning occasionally, until they are evenly golden and crispy. The coating should be puffed and vibrant.
Use a slotted spoon to transfer the fried shrimp onto paper towels to drain excess oil. Repeat with remaining shrimp.
Once all the shrimp are fried and drained, serve immediately for the best crunch. Garnish with chopped herbs or slices of lime if desired.