Position a rack in the center of the oven and preheat the oven to 350 degrees F. Line two baking sheets with parchment paper; set aside.
Whisk together the flour, cocoa powder, baking powder, baking soda, and salt in a medium bowl; set aside.
In the bowl of a stand mixer with a paddle attachment, beat together the butter, shortening and both sugars on low speed until just combined. Increase the speed to medium and beat until fluffy and smooth, about 5 minutes. Add the eggs one at a time, beating well after each addition. Add the vanilla and the red food coloring and beat until just blended.
Add half of the flour mixture and half of the buttermilk to the batter and beat on low until just incorporated. Scrape down the sides of the bowl. Add the remaining flour mixture and remaining ½ cup buttermilk and beat until completely combined.
Using a spoon (or a medium cookie scoop, which is what I used), drop a tablespoon of batter onto one of the prepared baking sheets and repeat, spacing them at least 2 inches apart. Bake one sheet at a time for about 10 minutes each, or until the cakes spring back when pressed gently. Remove the baking sheet from the oven and let the cakes cool on the sheet for about 5 minutes before transferring them to a rack to cool completely.
While the cakes are cooling, prepare the filling… In the bowl of a stand mixer with the paddle attachment, beat together the cream cheese and butter on medium speed. Add the sugar and beat on low speed until combined. Add the vanilla and increase the speed to medium-high; beat until creamy and smooth, about 4 minutes.
To assemble: Spread the filling onto the flat side of one cake using a knife of spoon. Alternatively, you can use a pastry bag with a round tip (I used a #12 Wilton tip) to pipe the filling onto the cake. Top it with another cake, flat-side down. Repeat with the rest of the cakes and filling.