In a large saucepan over medium heat, bring milk and cream to a simmer. Remove from heat and set aside.
In a medium bowl, whisk together egg yolks and sugar until sugar has dissolved and mixture is pale.
Temper the egg-sugar mixture by slowly stirring in ⅓ of the warmed cream and milk. Whisk in another ⅓ and finally the last ⅓ mixing well between additions.
Add the mixture back to the large saucepan and place over medium heat.
Cook, stirring constantly for about 5 minutes, until the mixture has thickened enough to coat the back of a spoon.
Place the chopped chocolate in a large mixing bowl. Pour the custard over the chocolate and set aside for 5 minutes so that the chocolate can melt.
Work quickly, whisking until the everything is smooth and the ingredients are well combined.
Whisk in the butter, salt, and vanilla until well combined.
Pour into serving dishes.
You can enjoy the pudding warm, or cover with plastic wrap and chill in the refrigerator for at least 60 minutes to serve cold.
The pudding will keep in the refrigerator for up to 3 days.