Preheat the oven to 350 degrees F.
Cream the butter and sugar in the bowl of a stand mixer fitted with the paddle attachment for about 3 minutes or until light and fluffy.
With mixer on medium-low, add the eggs 1 at a time, allowing them to incorporate before adding next.
With mixer off, add the vanilla, almond extract, and sour cream. Turn mixer on low until incorporated then high for about 1 minute.
In a separate bowl, sift together the flour, baking powder, baking soda, and salt. Sift at least 2 times.
With the mixer on low, add the flour mixture to the batter until just combined. Remove bowl from mixer and finish stirring with a spatula to be sure the batter is completely mixed.
Using a ¼ cup ice cream scoop or a measuring cup, divide the batter into cupcake pans.
Bake for 16-20 minutes or until cupcake springs back when pressed in the center.
Chocolate Buttercream
In a the bowl of an stand mixer fitted with whisk attachment, whisk butter and sugar on medium-high speed until very pale and fluffy, or about five minutes.
Be sure to stop at least once and scrape the bowl.
With the mixer off, add in cocoa powder, vanilla, and salt.
Turn mixer on low and blend for about 30 seconds.
One tablespoon at a time, add in heavy cream.
Once all cream has been added and mixture is mostly combined, turn off the mixer and scrape down the sides of the bowl.
Turn the mixer to medium-high to high and whisk for 3-5 minutes or until the mixture is light and fluffy. The frosting will be shiny and seem to have many large air bubbles throughout and this is exactly what we are going for.
Allow cupcakes to cool before frosting.
Recipe makes about 24-30 cupcakes.