Preheat your oven to 350°F (175°C). Grease and flour two 9-inch round cake pans or line with parchment paper.
In a large bowl, whisk together flour, cocoa powder, sugar, baking powder, baking soda, and salt.
In another bowl, mix buttermilk, oil, eggs, and vanilla. Add wet ingredients to dry and mix until just combined.
Gradually stir in hot water. The batter will be thin; this is normal.
Divide batter evenly between the pans. Bake for 30-35 minutes or until a toothpick inserted in the center comes out clean.
Let cakes cool in pans for 10 minutes, then remove and cool completely on wire racks.
For the frosting, beat cream cheese and butter together until smooth. Add powdered sugar one cup at a time, beating until fluffy.
Add vanilla and a pinch of salt. Mix until fully incorporated.
Once cakes are cool, spread a layer of frosting on one cake layer, top with the second layer, then frost the top and sides.
Chill for 30 minutes before slicing for cleaner cuts.