Place the chicken in a large bowl. Cover with buttermilk and add the hot sauce, if using. Toss together until evenly mixed and all the chicken is submerged in the buttermilk. Cover with plastic wrap and place in the fridge for at least 30 minutes. If you don't have the time, this step is not crucial but it will help make the chicken tender and juicy.
In a shallow dish combine the flour, salt, cayenne pepper, garlic powder, and black pepper. To coat the chicken, grab a piece from the buttermilk bowl, slightly drain off, and throw into the flour. Pat the flour into the chicken, on both sides. Return to the buttermilk bowl (with the rest of the chicken) and coat both sides. Place the chicken back into the flour, once more, and coat both sides. We're double dipping the chicken. Lay the coated chicken on a rack placed over a baking sheet. Repeat in this manner until all the chicken is coated. Allow the coated chicken to rest for at least 10 minutes, this will allow the fry to dry a bit and stick to the chicken.
In the meantime, heat about 2 inches of oil in a heavy duty pan, such as a cast iron skillet. Once the oil is hot, fry the chicken in batches. Cook for about 5 minutes on the first side, turn over once golden brown and crispy, continue to cook for another 4 minutes on the other side. Drain the chicken and place on a separate rack set over a baking sheet. You can keep the cooked chicken warm in a 200°F oven until all the chicken is fried and you're ready to serve. Make into fried chicken and waffle sandwiches with bacon cheddar green onion waffles (recipe above) and layer with lettuce, sliced tomato, avocado, and maple mustard sauce (recipe follows). Enjoy!