In a medium bowl, whisk together ½ cup of milk, egg yolks, sugar, cornstarch, and salt. Whisk well so that the mixture is nice and smooth. Set aside.
Pour the remaining milk into a medium pot and heat the milk gently till tiny bubbles begin to form on the side. Make sure to watch your milk and have the heat on medium. Remove from heat and whisk in ¼ cup of hot milk into the egg mixture. Whisk continously, this is called tempering.
Pour the egg mixture back into the remaining hot milk and place over medium low heat. Cook, whisk continuously, until the mixture begins to thicken about 2-3 minutes.
Remove from heat, stir in vanilla and butter. Keep stirring till the butter is melted. Pour the pudding through a strainer to remove any lumps.
Transfer the pudding to ramekins and cover with plastic wrap. Press in the plastic wrap on top of the pudding, to prevent skin from forming.
Chill in the fridge for at least 2 hours. Top with some crushed nuts and enjoy.