In a large bowl, whisk together the dry ingredients — cornmeal, flour, baking powder, baking soda, salt, and onion powder.
Stir in the chopped onion if using.
In a separate small bowl, whisk the wet ingredients — the buttermilk and beaten egg.
Combine the wet mixture with the dry ingredients, stirring just until a simple batter comes together. Don’t overmix; a few lumps are fine.
Heat peanut oil (or vegetable oil) in a deep fryer, large pot, or cast iron skillet to about 350°F (medium heat frying works best). You want enough oil to submerge small balls of batter.
Using a small cookie scoop or spoon, drop spoonfuls of hush puppy batter carefully into the hot oil.
Fry in batches, turning as needed, until they are golden brown hush puppies that float and “dog paddle” on the surface. This usually takes 2–3 minutes per batch.
Use a slotted spoon to transfer hush puppies to a baking sheet lined with paper towels to drain excess oil.
Serve warm, with fish, barbecue, or alongside tartar sauce for dipping.