Line a large plate with three layers of paper towels for draining. Fill your heavy-bottomed pot with oil to a 3-inch depth, leaving at least 4 inches of space at the top, and attach your candy thermometer to the side.
In a large bowl, whisk together flour, granulated sugar, baking powder, and salt for 30 seconds until evenly combined, then create a well in the center.
In a separate bowl, whisk eggs until combined and slightly frothy, then add milk and vanilla extract and whisk for 15 seconds.
Pour wet ingredients into the well of the dry ingredients and whisk gently in circular motions until just combined with no dry flour pockets — about 30–45 seconds. Do not overmix; a few lumps are fine. Let batter rest 5 minutes.
Heat oil over medium-high heat to 375°F (190°C), about 10–12 minutes. Test with a small drop of batter — it should sizzle, float, and lightly brown in about 45 seconds.
Transfer rested batter to a piping bag fitted with a large round tip (about ½-inch opening), or use a zip-top bag with one corner cut off.
Holding the bag about 2 inches above the oil, pipe 6–8 quarter-sized rounds spaced 2 inches apart. Fry undisturbed for 45–60 seconds until the bottom is golden, flip, and fry another 45–60 seconds until deeply golden all over.
Transfer bites to the paper towel-lined plate, allow oil to return to 375°F, then repeat with remaining batter — you should get about 30–35 bites total.
Once all bites have drained for at least 2 minutes, transfer to a serving platter and use a fine-mesh sieve to generously dust with powdered sugar. Serve immediately while warm.