First, make your brownies. Preheat oven to 350 degrees F. Liberally grease a 13x9" baking pan with cooking spray and set aside. In a large bowl, melt the butter and chocolate together. You can either do this in a microwave-save bowl in the microwave, heating at 45-second increments, stirring after each round until smooth, or you can do it in a glass bowl over a pot of simmering water, like a double-boiler method (just make sure the water is not touching the bottom of the bowl). I did the microwave method and it worked just fine.
NOTE: if you are using baking bars (such as Baker's), break them up into individual, segmented pieces before melting. This helps expedite the melting process and make for a smooth batter.
In the bowl of a stand mixer, beat together the sugar, eggs and vanilla with the paddle attachment until creamy, about 2 minutes. Add in the chocolate butter mixture until smooth. Then, add in the flour, espresso powder (if using) and salt until a soft yet thick batter has formed.
Spread the batter evenly into the prepared pan. Bake for approximately 40-45 minutes or until a toothpick inserted near the center comes out with moist crumbs (not super wet). Brownies will be very fudgy. Do not overbake, as brownies WILL continue to cook and set up once they cool. Allow to cool completely.
Once cooled, make your frosting: In a large bowl, combine the butter, cocoa, and vanilla. Stir until smooth. Gradually add powdered sugar, about a cup at a time, stirring well after each addition. Add heavy cream only if necessary to thin out frosting. Frosting is done when it is thick yet spreadable.
Spread evenly over cooled brownies and garnish with rainbow sprinkles or candy pieces. Allow to set for about 40 minutes before cutting into squares to serve.