Add egg yolks, sugar, salt, and cornstarch to a bowl and whisk until well combined.
In a pot heat milk and vanilla, stirring frequently until hot.
Slowly pour the hot milk into the egg mixture, while stirring constantly, to temper the eggs.
Return the mixture to the pot and place over medium heat. Cook, stirring continuously, until the mixture starts to simmer. Once simmering, cook for an additional minute.
Remove from heat, add butter, and stir until butter is melted and combined.
Optional - strain through a fine-mesh strainer to ensure no lumps.
Transfer to a shallow dish and cover with plastic wrap, allowing the plastic wrap to touch the surface of the pastry cream so it doesn't form a skin. Refrigerate until cold.
Prepare the Dough - Pâte à Choux
Preheat oven to 425℉.
Add water, salt, and butter to a pot. Place over medium/high heat and bring to a boil.
Lower heat to medium. Add flour and stir until combined and the dough sticks together in a ball. This takes about 1 minute.
Remove from heat and pour dough ball into a bowl or mixer. Add eggs, one at a time, mixing until fully incorporated between each addition. Mix dough until shiny, smooth, and velvety. When you pull the beater up from the mixture, the dough should pull up with it.
Scoop or pipe 2 tablespoon mounds onto a lined baking sheet, spaced 3 inches apart. Each mound should be roughly 1.5 inches in diameter.
Bake at 425℉ for 10 minutes. Without opening the oven, reduce heat to 325℉ and bake for an additional 15 - 20 minutes, or until golden. Transfer to a wire rack to cool completely.
Filling the Cream Puffs
You are ready to fill the cream puffs once the shells are completely cool and the filling is cold.
Option 1: Fill a piping bag, fitted with a small round tip or a bismarck tip, with pastry cream. Using the piping tip, poke a hole in the bottom of the cream puff and gently fill with pastry cream. You'll know the puff is full when it begins to feel firm or the filling inside starts pushing back against the tip of the piping bag.
Option 2: Gently insert the tip of a small knife into the bottom of each cream puff and twist to create a small hole. Alternatively, use a toothpick to poke a hole in the bottom of each cream puff and wiggle it to create a small hole. Fill a plastic bag with pastry cream, cut the corner off and use like a pastry bag to gently fill each puff with cream. You'll know the puff is full when it begins to feel firm or the filling inside starts pushing back against the tip of the bag.
Option 3: Cut the top third of each cream puff off, fill the base with pastry cream and replace the top.
Refrigerate for 30 - 60 minutes before serving for best texture. Optional - dust with powdered sugar before serving. Serve cold.