In a large bowl, combine the chicken pieces, buttermilk, and hot sauce. Ensure the chicken is fully submerged. Cover and refrigerate for at least 2 hours, or preferably overnight.
In a shallow dish or a large resealable bag, whisk together the flour, salt, pepper, paprika, garlic powder, and onion powder. This is your dry coating.
Remove the chicken from the buttermilk marinade, letting any excess drip off. Dredge each piece of chicken thoroughly in the dry coating, pressing to ensure it adheres well. Place the coated chicken on a wire rack set over a baking sheet.
In a large, heavy skillet (cast iron is ideal), heat the vegetable oil over medium-high heat until it reaches about 350°F (175°C). Use a thermometer to check the temperature.
Carefully place the coated chicken pieces into the hot oil, being careful not to overcrowd the skillet. Fry in batches if necessary. Fry for about 6-8 minutes per side, or until golden brown and cooked through. The internal temperature of the chicken should reach 165°F (74°C).
Remove the fried chicken from the skillet and place it on a clean wire rack to drain any excess oil. Serve hot.
Notes
For extra crispiness, you can double-dip the chicken: after the first dredging, dip it back into the buttermilk and then again into the dry coating before frying.