Preheat oven to 350°F/180°C. Grease an 8-inch square pan.*
To make the cake: In a medium bowl, sift together flour, cocoa, baking powder, and salt. Add sugar and mix.
In a small bowl, mix together milk, butter, and vanilla until combined. Pour into flour mixture and mix just until combined. Scrape batter into prepared pan and smooth the top.
To make the pudding: In a small bowl, toss together cocoa powder, brown sugar and granulated sugar until combined. Sprinkle mixture on top of batter, making sure it coats the entire surface evenly. Pour the hot water evenly on top. Leave as-is and do not stir.
If baking in an 8x8-inch pan, bake for 25-30 minutes. If baking in individual ramekins, bake for 15-20 minutes. Bake until the top is set and the cake is cracked and just beginning to pull away from the sides of the pan. Do not over bake or the cake will be dry. Allow cake to cool in the pan for 15 minutes on a wire rack.
Serve cake warm, with vanilla ice cream or whipped cream if you like. Serve each slice upside-down and drizzle with pudding sauce.
Cake can be kept in the refrigerator, covered, for up to 3 days. Reheat in microwave.