Make sure your block unsalted butter is at room temperature (see notes in the blog post).
Make sure the equipment you are using is spotlessly clean. Any grease or anything else can ruin meringue really easily.
In a medium pan, bring 1.5" worth of water to a simmer, and add a large glass bowl on top.
Add the egg whites and caster sugar to the bowl, and heat over the simmering water, whisking constantly, until the mixture reaches 160ºF/72ºC (see notes in the blog post).
Using a sugar thermometer or normal thermometer to reach the temperature, test the mixture carefully by rubbing some of the mixture between your fingers - there should be no grainy texture.
This took me about 7 minutes.
Once the temperature is reached, pour the mixture into the bowl, and whisk on a medium/high speed until the meringue is smooth and glossy, and the bowl is completely at room temperature. This took me about 20 minutes.
The bowl should not be warm at all as it may melt the butter. Once the meringue is cooled, switch the whisk attachment to a beater attachment.
Mixing at a medium speed, add the room temperature unsalted butter to the meringue 1 tbsp at a time (about a 1" cube of butter), letting the butter beat in fully each time.
Once the butter has been added, add the vanilla extract and continue to beat for a further 2-3 minutes after you have scraped down the sides of the bowl.
Decorate whatever cake you fancy - these quantities will work for 12x cupcakes, or a two layer 8" cake!
Notes
Please read the blog post for my full tips & tricks on swiss meringue buttercream.
Once made, this swiss meringue buttercream will last 2 days at room temp, or up to 5 in the fridge.