Start by preparing your fish. Rinse the fish fillets under cold water and pat them dry with paper towels. Make sure the fish is cut into portion-sized pieces for even frying.
In a large mixing bowl, combine the all-purpose flour, cornstarch, baking powder, kosher salt, and cayenne pepper. Whisk the dry ingredients together until they are well-mixed. Gradually add in the water, whisking until the batter is smooth and free of lumps. It should be thick enough to coat the back of a spoon.
In a frying pan or deep fryer, pour in enough vegetable oil to submerge the fish pieces (about 2-3 inches deep). Heat the oil over medium-high heat until it reaches 350°F (175°C). You can test the oil by dropping a small amount of batter into it; if it sizzles and bubbles, the oil is ready.
Dip each piece of fish into the batter, ensuring it is fully coated. Allow any excess batter to drip off before carefully placing the fish into the hot oil.
Fry the fish in batches, making sure not to overcrowd the pan. Cook for about 4-5 minutes on each side or until the batter is golden brown and crispy. Use tongs to flip the fish halfway through cooking.
Once cooked, remove the fish from the oil and place it on a plate lined with paper towels to drain any excess oil. Serve immediately with your favorite dipping sauces and sides.