In a small saucepan, bring a small amount of water to a boil. Reduce the heat to a simmer.
In a medium heat-proof bowl ( I use my stand mixer bowl), whisk together egg whites and sugar. Place the bowl over a saucepan with simmering water. This is a double-boiler method. Make sure the bottom of the top bowl doesn't touch the water.
Heat the egg white mixture until the sugar is completely melted and it reaches 160oF (70oC), whisking frequently. This will take about 5 minutes.
Remove the bowl from the heat and start whipping the mixture with the mixer on low speed for a minute. After that, increase the speed to medium-high and whip until stiff peaks form and the mixture is cool to the touch. This will take 5-10 minutes.
Once the meringue has cooled to below 79-81oF (26- 27 °C), switch to the pedal attachment and start adding butter, tablespoon by tablespoon butter while beating on medium speed. Make sure the butter is fully incorporated before adding the next piece.
Please note that it is normal if the buttercream starts looking like cottage cheese halfway. Keep adding the butter and beating the buttercream until smooth, light, and fluffy, about 10 minutes. Add vanilla bean paste or vanilla extract and mix to combine.
Add a pinch of salt at the end; this gives buttercream depth of flavor.
Before transferring the buttercream to a piping bag, stir it with the spatula. This will help to eliminate air bubbles and make the cream silky.
Notes
Use a clean and dry mixing bowl and mixer attachments. Wipe them with a paper towel with vinegar before use.
Use a thermometer to check the temperature of egg whites and butter.
The temperature of butter should be 57-61oF (16-18oC).