Preheat oven to 350 degrees F. Grease and flour two 9-inch baking pans.
In a medium sized bowl, combine flour, baking soda, baking powder, cinnamon, and salt. Set aside.
In the bowl of a stand mixer, combine eggs, oil and sugar. Mix on medium high speed until light and fluffy, about 5 minutes. Add vanilla and almond extract and mix until combined. Add flour and fold mixture together just until mixed. Fold in shredded carrots and nuts.
Fill both pans with equal amounts of batter. Bake in preheated oven until golden brown on top and a toothpick inserted comes out clean, about 40-50 minutes total. As soon as you remove them from the oven, transfer them to a wire rack to cool. As soon as cakes are cool enough to handle with your bare hands, remove from pans and allow to cool completely on wire rack.
To make frosting, blend butter and cream cheese together on high speed until light and fluffy, about 5 minutes. Scrape sides, add vanilla, and mix another minute. Add sugar incrementally, blending slowly to combine and then on high speed to really mix. You can either add the orange zest and spices to the frosting at this point or you can frost the cake and then top it with the zest and spices.
When cake is completely cool, frost and stack it.