Step 1: Preheat your oven to 350°F (175°C). Grease and flour two 9-inch round cake pans and set aside.
Step 2: In a large mixing bowl, whisk together the cake flour, baking powder, baking soda, and salt. Set aside.
Step 3: In another bowl, using an electric mixer, beat the unsalted butter and granulated sugar together on medium speed until light and fluffy—about 3-5 minutes.
Step 4: Add the large eggs, one at a time, mixing well after each addition. Then, mix in the vanilla extract and almond extract until fully combined.
Step 5: In a separate measuring cup, combine the buttermilk, sour cream, and canola oil. Gradually add this mixture to the butter and sugar mixture, mixing until just combined.
Step 6: Gently fold the dry ingredient mix into the wet ingredients using a spatula. Be careful not to over-mix; you want to keep the batter light and airy.
Step 7: Gently fold in the beaten egg whites until just combined. This step is crucial for achieving a light texture.
Step 8: Divide the batter evenly between the prepared cake pans. Bake in the preheated oven for 25-30 minutes, or until a toothpick inserted in the center comes out clean.
Step 9: Once baked, remove the cake layers from the oven and let them cool in the pans for about 10 minutes. Then, gently turn them out onto a cooling rack to cool completely.
Step 10: In a large mixing bowl, beat the unsalted butter until creamy. Gradually add the sifted confectioners' sugar, mixing on low speed until combined. Add the whole milk, heavy cream, vanilla extract, and salt, and beat on high speed until the buttercream is light and fluffy.
Step 11: Once the cake layers are completely cool, place one layer on a serving plate. Spread a generous amount of vanilla buttercream on top, then place the second layer on top. Frost the top and sides of the cake with the remaining buttercream. Decorate as desired!