Prep the fish: Pat the fillets dry with paper towels. Sprinkle with 1 teaspoon salt and a light pinch of pepper.
This seasons the fish itself, not just the crust.
Soak in buttermilk: Place the fillets in a shallow dish and pour over the buttermilk. Let sit 15–20 minutes while you prepare the coating and heat the oil.
Make the coating: In a large shallow bowl, mix cornmeal, flour, remaining 1 teaspoon salt, black pepper, paprika, garlic powder, onion powder, and cayenne if using.
Heat the oil: Pour oil into a heavy skillet or Dutch oven to about 1/2–1 inch deep. Heat to 350–365°F (175–185°C).
Use a thermometer if you can; steady heat is key for crispness.
Dredge the fillets: Lift each fillet from the buttermilk, let excess drip off, then press into the cornmeal mixture until fully coated. Shake off loose bits so the crust doesn’t fall into the oil.
Fry in batches: Carefully lower fillets into the hot oil. Don’t crowd the pan.
Fry 3–5 minutes per side, depending on thickness, until deep golden brown and the fish flakes easily.
Drain properly: Transfer to a wire rack set over a sheet pan. Sprinkle with a tiny pinch of salt while hot. Avoid paper towels if possible—they trap steam and soften the crust.
Rest, then serve: Let the fish rest 2–3 minutes to set the crust.
Serve with lemon wedges and your favorite sauce.