Preheat your oven to 350°F (175°C) and prepare two or three 8-inch cake pans by greasing and lining them.
In a bowl, whisk together the flour, cocoa powder, baking soda, baking powder, and salt until well combined.
In a large bowl, beat together the granulated sugar, eggs, vegetable oil, buttermilk, and vanilla extract until smooth.
Gradually stir in the dry ingredients to the wet mixture, and then slowly mix in the hot coffee or water until the batter is smooth.
Divide the batter evenly between the prepared pans and bake for 25-30 minutes, or until a toothpick inserted into the center comes out clean. Let the cakes cool completely.
While the cakes are cooling, combine the milk and sugar in a saucepan over medium heat, stirring until the sugar has dissolved. Allow it to cool to room temperature.
In another bowl, beat the softened butter until fluffy, then gradually incorporate the cooled milk and sugar mixture. Add vanilla extract and beat until smooth. If desired, mix in powdered sugar for extra fluffiness.
Heat the cream in a saucepan until just simmering. Pour it over the chopped chocolate in a bowl and let it sit for 2 minutes, then whisk until smooth. Stir in the butter for a glossy finish.
Level the cooled cake layers if necessary. Spread or pipe the cream filling between each layer. Optionally, chill for 30 minutes for added stability.
Pour the ganache over the top of the cake, letting it drip down the sides. Decorate with extra piped cream or chocolate swirls if desired.