Make the cake layers: Preheat the oven to 350°F. Prepare two 8" round pans with parchment paper on the bottoms and non-stick spray around the sides.
In a medium mixing bowl, whisk together the soy milk with the vinegar or lemon juice (this is your vegan buttermilk). Set aside for at least 10 minutes. In a separate, large mixing bowl or the bowl of your stand mixer fitted with a paddle attachment, add the flour, cocoa powder, sugar, baking soda, baking powder, salt, and espresso powder. Mix until combined. To your buttermilk, add the vegetable oil, sour cream, and vanilla. Whisk to combine. Add the wet mixture to the dry and mix until just barely combined. Add the warm water or coffee to the mixture, and mix until just combined. Do not overmix. Scrape the sides as necessary.
Distribute your cake batter evenly between the pans (using a kitchen scale can help with this). Bake in the preheated oven for 28-32 minutes, until a toothpick inserted into the center comes out clean or with just crumbs. Allow the layers to cool completely and, if desired, wrap in plastic wrap and freeze before beginning to frost. Make the ganache: Add the chopped chocolate to a heat-proof bowl and set aside. Add the milk to a separate heat-proof bowl and microwave until hot but not boiling. You can also do this in a small saucepan. Pour the milk over the chocolate and let sit for about three minutes, then whisk until smooth and creamy. Set aside to cool to room temperature. Place in the fridge or freezer to speed up this process, if desired.
Make the buttercream: Place the softened butter into a large mixing bowl or the bowl of a stand mixer fitted with a paddle attachment. Beat until light and fluffy. Add the powdered sugar, cocoa powder, and vanilla extract and beat again until combined. Add the cooled ganache to the mixture and beat again for a couple of minutes, scraping the sides as needed. If the consistency is too thick, mix in more milk, ~1/2 tablespoon at a time, to get the desired consistency. If the consistency is too thin, mix in more powdered sugar to thicken. To remove air bubbles, use a rubber scraper to stir the buttercream a bit and press it up against the sides of the bowl.
Frost and decorate the cake: Place a cardboard cake board on top of a rotating cake stand. Spread a small amount of frosting in the center of the cake board. Place the first cake layer on top of the cake board. Spread a layer of frosting evenly over the cake layer. Place the second cake layer, upside down, on top. Spread a thin layer of frosting all over the cake (this is your crumb coat). Freeze for at least fifteen minutes. Using your offset spatula, spread a thick layer of frosting all over the cake. Use a bench scraper to smooth out the sides and the top. Press mini chocolate chips around the bottom of the cake. Place any remaining frosting into a piping bag with a Wilton 2D tip. Pipe 12 swirls around the top of the cake. See the video above or head to YouTube for a detailed visual of frosting and decorating this cake. Serve: Serve this cake the same day as frosting it, or place in the fridge until serving. Store any remaining cake in an airtight container in the fridge or freezer.