Get the butter and cream cheese out of the refrigerator and leave at room temperature until softened.
Put the butter and cream cheese in the bowl of your stand mixer with the paddle attachment.
Start the mixer on low speed until it breaks up the big lumps, and then increase the speed gradually to medium until it smooths out the smaller lumps. Stop to clear the paddle and scrape the sides and bottom of the bowl several times with your flexible spatula.
Add the cocoa powder and the optional espresso powder. Start the mixer slowly or the cocoa will fly all over the room. As it blends, increase speed gradually to medium until the cocoa is well blended.
This frosting will taste like the cocoa powder you put in, so the better the cocoa, the better the frosting. It’s not the place to save a buck. Get the good stuff!
Add the vanilla (overpour a little) and run the mixer until it blends in.
Vanilla is another place where you don’t want to be a spendthrift. Buy premium pure real vanilla extract, not imitation, and you won’t regret it!
Add the powdered sugar one-third at a time, also adding two tablespoons of buttermilk with each addition. With each addition, run the mixer slowly at first and speed it up. Stop occasionally to clear the paddle and scrape the bowl.
At the end, run the mixer on a higher speed (I use 6) for a minute or two until it has no more lumps and a satiny texture.
If the frosting is too heavy, keep adding a few more tablespoons of buttermilk and blending it in until you reach a spreading consistency.
Remove the paddle and free the bowl. Use your flexible spatula to scrape all the frosting off the sides and bottom of the bowl, and then fold and blend until all the streaks are gone.