Place the egg yolks into the bowl of a stand mixer with a whisk attachment fitted. Whip them on medium-high speed until they are very pale in color (about the color of butter). This should take about 5 minutes.
Meanwhile, heat the sugar and water in a small saucepan on medium heat and bring to a boil. Use a candy thermometer to track the temperature, we want it to get to exactly 240°F / 115°C.
Once the sugar syrup reaches the right temperature, turn the mixer down to low speed and carefully pour the sugar syrup into the egg yolks in a slow, steady stream. Be careful not to hit the sides of the bowl or the whisk as you do it.
The bowl of the stand mixer should feel hot to the touch once all the sugar syrup is in. Turn the mixer up to high speed and let it whip until the bowl feels room temperature again. This may take about 10 minutes.
Once the bowl no longer feels warm, you can start adding your butter in small chunks. The butter must be softened, but not too warm. For best results, I like to take my butter out of the fridge about an hour before I start making the buttercream. Add the butter to the mixer one small chunk at a time, letting it whip until it is incorporated in between each addition.
As you are adding the butter the consistency of the frosting will change. At first, it will look soupy and runny, don't panic, just keep going. Eventually, the frosting will thicken up and look lovely and glossy. If it doesn't, turn the mixer up to maximum speed and whip for a further minute. (Or see my troubleshooting guide in the post above).
Once all the butter is added, add the vanilla and salt and whip for one more minute. If you are adding any other flavorings, such as pistachio paste or strawberry puree, add them at the same time as the vanilla.
Notes
French Buttercream Troubleshooting
Buttercream is curdled or split - If your buttercream appears curdled or split then your butter may have been too cold when adding it to the egg and sugar mixture. The two different temperatures can cause it to split. Don't worry you can still salvage it! Put your bowl of buttercream over a double boiler (put the bowl on top of a medium saucepan with a small amount of simmering water in it, on a low heat) and continue to whisk it by hand until it comes together into a smooth mixture again. Remove from the heat and put it in the fridge to chill for about 20 minutes, then put it back into the stand mixer and whip on high speed for a minute or two - it should be a lovely glossy buttercream again. Buttercream is soupy - if your buttercream is soupy and liquidy then either your butter was too soft when going in or you didn't wait long enough for the meringue to cool before adding the butter. Either way, just put the buttercream in the fridge to set up for 20-30 minutes then try again, whipping on high speed for a few minutes.