In a saucepan, bring butter, water, and vanilla to a boil. Stir in flour until a smooth dough forms. Cool slightly.
Beat in eggs one at a time until dough is smooth and glossy.
Drop dough by spoonfuls onto a parchment-lined baking sheet.
Bake at 400°F (200°C) for 35–40 minutes until golden and puffed. Pierce each puff with a toothpick and return to oven (off) for 10 mins.
Cool completely.
In a bowl, beat cream, pudding mix, and milk until thick and fluffy.
Slice each puff and fill with cream. Dust with powdered sugar if desired.