Preheat the oven to 350°F (175°C). Grease two 9-inch round cake pans and line the bottoms with parchment paper. In a large mixing bowl, whisk together flour, sugar, cocoa powder, baking soda, baking powder, and salt until evenly combined.
Add eggs, buttermilk, vegetable oil, and vanilla extract to the dry ingredients. Use an electric mixer on medium speed to beat until smooth and well incorporated, about 2-3 minutes. Gradually add hot water, mixing slowly to integrate fully; batter will be thin.
Divide the batter evenly between the prepared cake pans. Tap the pans gently on the counter to release air bubbles. Bake in the preheated oven for 30-35 minutes, or until a toothpick inserted into the center comes out clean. The edges should be slightly pull away from the pan.
Remove the cakes from the oven and allow them to cool in the pans for 10 minutes. Then, transfer to a wire cooling rack and cool completely before frosting.
In a separate bowl, beat the softened cream cheese and butter together until smooth and creamy, about 2 minutes. Gradually add the confectioners' sugar, one cup at a time, beating well after each addition. Mix in vanilla extract and continue until frosting is fluffy and spreadable.
Once cakes are completely cooled, spread a layer of cream cheese frosting on top of one layer. Place the second cake layer on top and apply a thin crumb coat. Chill for 15 minutes, then apply the remaining frosting evenly over the top and sides of the cake. Decorate as desired.