Preheat your oven to 350°F (175°C). Grease an 8x8-inch baking pan or a similar-sized oven-safe dish.
In a large bowl, whisk together the granulated sugar, flour, cocoa powder, baking powder, and salt until well combined.
Add the milk, melted butter, and vanilla extract. Stir until the batter is smooth and there are no lumps.
Pour the batter into the prepared baking pan and spread it evenly.
In a separate bowl, combine the granulated sugar, brown sugar, and cocoa powder. Sprinkle this dry mixture evenly over the cake batter in the pan. Do not stir; this will become the fudge layer.
Slowly pour the boiling water over the entire surface of the batter and topping. Do not stir or mix. The water will sit on top but will sink down as it bakes, creating a pudding-like consistency.
Carefully place the pan in the preheated oven and bake for 35-40 minutes, or until the top of the cake is set and springs back slightly when touched. The cake will have a brownie-like top layer, and there will be a gooey pudding layer underneath.
Allow the cake to cool for about 5 minutes. Then, use a spoon to scoop the cake into bowls, making sure to get some of the gooey fudge pudding along with the cake. Serve warm, optionally topped with vanilla ice cream or whipped cream.