Preheat the oven to 350 degrees. Grease and flour an 8 inch square cake pan. set aside.
Place the butter in a medium saucepan or skillet (preferably not nonstick or cast iron so that you can more easily see the color change) and heat over medium low heat, swirling the pan frequently. Once the butter has melted, continue to cook over medium low swirling the pan frequently until the butter has a nutty aroma and is golden brown in color. Don’t walk away from the stove! Brown butter can go from perfect to burnt in a matter of seconds. Transfer brown butter to a bowl to cool.
Combine flour, baking powder, baking soda, salt, cinnamon, nutmeg and cardamom in a medium bowl. Whisk together and set aside.
Combine eggs, brown sugar and granulated sugar in a large bowl and whisk until fully combined and no lumps of sugar remain. Slowly whisk in oil followed by cooled brown butter and vanilla extract. Keep whisking until the mixture is emulsified and cohesive.
Add the dry ingredients to the wet ingredients and stir with rubber spatula until just a few streaks of flour remain. Fold in carrots until the batter is just combined.
Using a rubber spatula, transfer cake batter to prepared pan. Bake for 30-40 minutes or until a tester poked into the center of the cake comes out clean or with a few moist crumbs attached. Set cake aside to cool.
Meanwhile, make the frosting: Combine butter and cream cheese in work bowl of a stand mixer. Beat with the paddle attachment on medium until fully combined, scraping down the bowl with a spatula as necessary.
Reduce speed to low and add powdered sugar, vanilla and a pinch of salt. Return the speed to medium and beat until the frosting is completely smooth, about 1-2 minutes, stopping to scrape down the sides of the bowl once or twice, as necessary.
Once cake has cooled completely, spread evenly frosting on top. Serve or cover and refrigerate until ready to serve.