Brine the chicken: In a bowl, mix buttermilk with hot sauce. Add chicken pieces, coat well, cover, and refrigerate for at least 1 hour, or overnight if you have the time. I've done both and honestly, even 1 hour makes a dramatic difference.
Mix the dredge: Combine flour, cornstarch, garlic powder, smoked paprika, onion powder, black pepper, salt, and cayenne in a shallow bowl. Whisk until fully blended.
Dredge, twice. Pull a chicken piece from the brine (let the excess drip off), press it firmly into the flour mix. Then dip it back into the buttermilk, then back into the flour. Two coats. This is non-negotiable for that thick, shatteringly crunchy crust.
Let it rest: Set the coated pieces on a wire rack for 10 minutes before frying. This lets the coating hydrate and grip the chicken. Skipping this step is the #1 mistake most home cooks make.
Heat the oil: Pour oil into a heavy-bottomed skillet or Dutch oven to about 1.5 inches deep. Heat to 350°F (175°C). Use a thermometer, guessing here will ruin you.
Fry in batches: Add 2–3 pieces at a time. Don't crowd the pan or the oil temp drops and you get greasy, not crispy. Fry bone-in pieces for 13–14 minutes, turning once halfway through, until deep golden brown.
Drain right: Move finished pieces to a wire rack, not paper towels. Paper towels trap steam and soften the crust. Wire rack = crunch preserved.