Preheat the oven to 350F degrees. Line the bottom of a 9x13 inch metal baking pan with parchment paper and grease the sides of the pan with non-stick cooking spray or butter.
In a large bowl whisk together the flour, baking powder and salt for about 30 seconds. Set aside.
In a large bowl using a stand or hand-held electric mixer on medium speed, beat together the butter and sugar until fluffy (about 2 minutes). Add in the oil, egg whites, vanilla extract and almond extract until combined (about 30 seconds). Turn off the mixer and stir in the sour cream using a large rubber spatula or wooden spoon.
With the mixer on low, beat in about ½ of the flour mixture followed by about ½ of the buttermilk. Turn off the mixer and scrape down the sides of the bowl using a large rubber spatula or wooden spoon. Turn the mixer back onto low and beat in the rest of the flour mixture followed by the rest of the buttermilk.
Carefully pour the batter into your prepared pan and bake in the preheated oven for about 28-35 minutes, or until an inserted toothpick comes out clean or with a few cake crumbs.
Allow to cool fully before frosting.
To make the buttercream, in a large bowl using a stand or hand-held electric mixer beat the butter on medium speed until fluffy (about 2-3 minutes). Add in the icing sugar about ¾ cup at a time followed by the cream, vanilla & salt until the desired consistency is reached. Either invert the cake onto a large service platter or board, or frost in its pan.