Preheat the oven to 350 degrees. Spray a 9x9 metal pan with non-stick spray and line it with parchment paper.
In a medium bowl, whisk the flour, cocoa powder, baking powder, baking soda and salt together. Then set aside the dry ingredients.
In a large mixing bowl, cream together the butter and granulated sugar with an electric hand mixer on high speed until fluffy, about 3-4 minutes. (If using a stand mixer, use the paddle attachment.)
Then add in the eggs and vanilla and mix on medium then medium-high speed until smooth, pale in color and slightly fluffy, about 2-3 minutes. Scrape the sides of the bowl with a rubber spatula as needed.
Add the dry ingredients and the buttermilk to the butter mixture a little at a time, until all has been added, mixing on low then medium speed for each addition. Mix just until the batter is combined and smooth, scraping the sides of the bowl as necessary.
Add in the hot coffee and mix on low speed just until dispersed through the batter.
Pour the cake batter into the prepared cake. Bake the cake for 48-52 minutes, or until a toothpick comes out clean from the center of the cake. Let the cake cool in the pan on a wire rack to until completely cool.
Melt the butter in a small saucepan over medium heat. Add the melted butter, salt and cocoa powder to a large bowl. Combine together with an electric mixer on medium-low speed.
Sift in the powdered sugar and add in the heavy cream a little at a time, mixing on low speed for each addition.
When all has been added, mix on high speed until silky smooth, about 2 minutes. If the frosting isn't the right spreadable consistency, add more cream a tablespoon at a time until it's silky smooth.
When the cake is completely cooled, remove it from the pan and transfer it to a serving plate.
Spread the fudge frosting on top of the cake with an offset spatula. (I like to add little swirls to make it look more interesting.) Sprinkle chocolate shavings or mini chocolate chips over top and serve!
