Combine sugar, cornstarch and salt in a medium-sized saucepan (off heat). Whisk until combined and no lumps of cornstarch remain.
Add egg yolks, whisk until combined then add both the whole milk and evaporated milk. Whisk mixture until completely smooth and everything has dissolved.
Transfer saucepan to the stove and cook over medium heat, whisking constantly, until liquid thickens and comes to a bubble. The pudding will first begin to thicken on the bottom of the pan where it is in contact with heat. You must continually remove the thickened pudding from the bottom of the pan or it will scorch. Don’t worry, just stir constantly, and don’t forget about the corners of the pan!
Once the first bubble rises to the surface, reduce the heat to low and continue to cook for exactly 1 minute, whisking vigorously and constantly.
Remove the pudding from the heat and whisk in vanilla and butter until completely smooth and well-combined. Transfer pudding to a medium-sized mixing bowl then cover with plastic wrap. Place plastic wrap directly in contact with the pudding to prevent a thick skin from forming on the surface.
Refrigerate for at least 4 hours or until completely chilled. Just before serving, remove pudding from the fridge and whisk by hand or beat on medium speed just until smooth and creamy.
Notes
When cooling your pudding, be sure to have the plastic wrap actually touch the pudding. It’ll prevent a thick skin from forming on the surface.