Preheat your oven to 350°F (180°C). Line a baking sheet with parchment paper.
In a medium saucepan, combine the water, milk, butter, sugar, and salt. Bring to a gentle boil over medium heat. As soon as the mixture boils, reduce the heat to low, add the flour all at once, and stir vigorously with a wooden spoon. Keep stirring until the dough pulls away from the sides of the pan and forms a smooth ball, about 2 minutes.
Transfer the dough to the bowl of a stand mixer fitted with the paddle attachment (or a large mixing bowl if using a hand mixer). Beat on low speed for a few minutes to cool the dough slightly.
With the mixer on low, add the eggs one at a time, beating well after each addition. The dough will look curdled at first, but keep mixing — it will come together. After adding three eggs, check the dough’s texture. It should be smooth, shiny, and elastic. If you pinch a bit between your fingers, it should stretch without breaking. If needed, lightly beat the fourth egg and add it gradually until the dough reaches this consistency.
Transfer the dough to a piping bag fitted with a large star tip (or plain tip). Pipe 1.5-inch (4 cm) circles onto the prepared baking sheet, leaving about 2 inches between each puff to allow for expansion.
Bake for 30–40 minutes, until the puffs are golden brown and crisp. Do not open the oven during the first 30 minutes, as this can cause the puffs to collapse. Once baked, transfer to a wire rack to cool completely.
In a mixing bowl, combine the heavy cream, milk, pudding mix, and sugar. Using a hand or stand mixer fitted with the whisk attachment, beat until stiff peaks form.
Once the puffs have cooled, use a small knife or piping tip to make a small hole in the bottom of each puff. Fill a piping bag with the whipped cream mixture and pipe into each puff until full.
Dust the filled puffs with powdered sugar and chill in the refrigerator for at least 30 minutes before serving.
RECIPE NOTES
Cream puffs are best enjoyed the day they’re made, but you can store them in an airtight container in the fridge for up to 2 days.