In a medium saucepan, combine the heavy cream, whole milk, and salt. Heat the mixture over medium heat, stirring occasionally, until it’s just about to simmer. Be careful not to let it boil.
While your milk and cream mixture is heating, whisk the egg yolks and sugar together in a separate mixing bowl until they are pale and slightly thickened. This should take about 2-3 minutes of vigorous whisking.
Once the milk and cream mixture is hot, slowly pour a small amount of it into the egg yolks while whisking constantly. Gradually add the rest of the hot mixture to the yolks, continuing to whisk to temper them and prevent cooking too quickly.
Return the tempered egg mixture to the saucepan and cook over medium heat, stirring constantly until it thickens enough to coat the back of a spoon, about 5-7 minutes.
Remove the saucepan from the heat and immediately stir in the coarsely chopped semisweet chocolate and butter. Keep stirring until both are completely melted and the mixture is smooth and glossy.
Stir in the vanilla extract to enhance the flavor profile of your pudding. Mix well to ensure everything is combined.
Pour the pudding through a fine mesh strainer into a clean bowl, discarding any solids. Cover the surface with plastic wrap to prevent a skin from forming. Refrigerate for at least 2 hours or until set.