If your bread is already dry and stale, proceed right to the next step of the recipe.
If your bread is fresh, once it’s cut into cubes, scatter the cubes in a single layer on a rimmed baking sheet and toast in the oven at 300°F for about 30 minutes, or until the cubes are beginning to dry out.
Set the bread cubes aside to cool to room temperature.
Make the custard.
In a large (at least 32 fluid ounce), spouted measuring cup, place the eggs, egg yolks, granulated sugar (reserving about 2 tablespoons of the granulated sugar for later), and salt, and whisk until very smooth.
Whisking constantly, add the milk and cream in a steady stream until well-combined. Add the flavoring or extract, and whisk to combine.
Assemble the bread pudding.
Grease lightly a porcelain casserole dish of at least 6 cups (48 ounces) capacity, and place the bread cubes in an even layer inside of it.
Add the milk mixture, pouring it carefully so each piece of bread is moistened. Allow the mixture to sit, stirring very occasionally, for at least an hour to allow the bread to begin to soak up the liquid.
Alternatively, cover the baking dish and refrigerate it for longer (up to overnight).
Bake.
When you’re nearly ready to bake the bread pudding, place an oven-safe pan with at least a 4 cup (32 fluid ounce) capacity on the bottom rack, and fill it with lukewarm tap water.
Preheat your oven to 350°F.
Sprinkle the top of the bread pudding evenly with the reserved 2 tablespoons (25 g) granulated sugar, and place the baking dish, covered with only aluminum foil (removing any plastic wrap if refrigerated, covered), and place it on the top rack of the preheated oven.
Bake, undisturbed, for 50 minutes. Remove the aluminum foil and continue to bake the bread pudding until a sharp knife inserted in the center of the pudding comes out mostly clean and the top is golden brown and the edges caramelized (another 25 to 40 minutes).
If the bread is browning too quickly, reduce the oven temperature to 325°F to finish baking. Remove from the oven and allow the pudding to sit for about 15 minutes before serving warm.