In a large bowl, mix the buttermilk, salt, and black pepper.
Add the chicken pieces, ensuring they are fully coated.
Cover and refrigerate for at least 1 hour (or overnight for more flavor).
In another bowl, whisk together the flour, cornstarch, garlic powder, onion powder, paprika, salt, and black pepper.
In a separate bowl, whisk together the eggs and milk.
Remove the chicken from the buttermilk, letting the excess drip off.
Dip each piece into the egg wash.
Coat each piece in the flour mixture, pressing gently to make sure the breading sticks.
Place the coated chicken on a wire rack and let it sit for 10 minutes—this helps the coating adhere.
In a deep frying pan or Dutch oven, heat about 2 inches of oil to 350°F (175°C).
Test the oil by dropping in a small piece of batter—if it sizzles immediately, it’s ready.
Carefully place the chicken pieces in the hot oil, frying in batches to avoid overcrowding.
Fry for about 4-5 minutes per batch, or until golden brown and crispy.
Use a thermometer to check that the internal temperature reaches 165°F (74°C).
Transfer to a wire rack to drain excess oil.
Let the chicken rest for a few minutes before serving.
Serve hot with dipping sauces and your favorite sides.