Preheat the oven to 350°F (175°C).
Grease and flour two 9-inch round cake pans.
In a large mixing bowl, whisk together the flour, cocoa powder, baking powder, sugar, and salt.
In a separate bowl, beat the eggs, then add the ricotta cheese, milk, oil, and vanilla extract, mixing until smooth.
Slowly add the wet ingredients to the dry ingredients, mixing until just combined.
Fold in the instant chocolate pudding mix until incorporated.
Divide the batter evenly between the prepared pans and smooth the tops.
Bake for 25-30 minutes, or until a toothpick inserted in the center comes out clean.
Allow the cakes to cool in the pans for 10 minutes, then transfer to wire racks to cool completely.
While the cakes cool, prepare the frosting by whipping the heavy cream until soft peaks form, then gradually add powdered sugar until fluffy.
Once the cakes are completely cool, place one layer on a serving plate and spread a layer of frosting on top.
Top with the second cake layer and frost the top and sides as desired.