For the cake: Preheat the oven to 350 degrees F. Butter the bottom and sides of two 8-inch round cake pans; dust with flour and tap out the excess.
Whisk together the flour, baking powder and salt in a medium bowl; set aside.
Beat the butter, sugar and oil in a large bowl with an electric mixer on medium-high speed until fluffy and light in color, about 5 minutes. Beat in the eggs, one at a time, and then the vanilla until combined.
Alternate folding the flour mixture and the milk into the batter with a spatula, adding the flour in three additions and the milk in two, starting and ending with the flour and mixing just until smooth. Divide the batter evenly between the prepared pans.
Bake the cakes in the center of the oven for about 40 minutes, or until golden on top and a toothpick inserted in the center comes out clean with a few crumbs sticking to it. Rotate the pans halfway through the baking time. Remove from the oven, let the cakes cool in the pans for about 10 minutes, and then turn out onto racks to cool completely.
For the Swiss meringue buttercream: Put the egg whites and sugar into large bowl set over a double boiler. Whisk constantly until the sugar melts and the mixture is very thin and warm.
Pour the egg whites into the bowl of a stand mixer fitted with the whisk attachment and whip on high until stiff peaks form, about 5 minutes. Turn the speed to low and continue beating until cool, about 10 minutes.
Turn the speed to medium and add the butter in small pieces. (The mixture may look curdled before it comes together.) Add the vanilla extract. (Re-beat the mixture as needed to keep it smooth as you frost your cake.)
Place a cake layer on a serving plate and top with some buttercream. Place the remaining cake layer on top and ice the entire cake with buttercream.
When measuring flour, we spoon it into a dry measuring cup and level off the excess. (Scooping directly from the bag compacts the flour, resulting in dry baked goods.)