In a heavy-bottomed medium saucepan over medium heat, whisk together the milk, brown sugar, and salt. Simmer until the brown sugar is dissolved and the mixture is warm.
In a medium bowl, whisk together the egg yolks and cornstarch until smooth. While whisking constantly, ladle in about ½ cup of the warm milk mixture to temper the eggs. Continue ladling in another 1–2 scoops of warm milk and whisk until smooth.
Pour the tempered egg mixture into the saucepan with the remaining milk mixture, whisking constantly. Continue to whisk until the mixture comes to a gentle boil. Once the mixture bubbles, whisk and cook for another 2 minutes, until thick.
Remove from the heat and mix in the butter and vanilla until melted and smooth. Pour the pudding into a bowl, then place plastic wrap directly on the surface of the pudding. Let cool to room temperature, then refrigerate for 2 hours, until set.