Preheat oven to 350°F.
Grease and flour a 9-inch by 13-inch by 2-inch baking pan.
In the bowl of a stand mixer fitted with a batter blade, or with a hand mixer in a large mixing bowl, beat together the butter, sugar, salt, baking soda, and vanilla until it is fluffy, about 5 minutes. Scrape down the sides of the bowl. Add the eggs one at a time, stopping the mixer and scraping down the sides after each addition.
In a separate bowl, whisk together the all-purpose flour and cocoa powder until no lumps remain. If you can't whisk out the lumps, push it through a sieve or sift it.
Add about 1/3 of the flour mixture to the contents of the mixing bowl. Beat it in on medium low until no dry pockets remain. Add 1/3 of the milk and beat until combined. Scrape down the sides of the bowl and continue adding the flour and milk alternately, mixing until combined and scraping down the sides of the bowl each time. The last addition should be milk. Mix just until evenly combined.
Spoon the cake batter into the pan. Smooth the top of the batter and bake for 30-35 minutes, or until the cake pulls away from the edges of the pan a bit and a skewer or toothpick inserted in the center comes out clean.
Let the cake cool in the pan on the rack completely before proceeding.
When cake is cool, use a skewer or chopstick to poke holes all over the cake. Pour the pudding on top of the cake, cover with plastic wrap directly on the surface of the cake and let it soak for at least an hour but up to overnight before proceeding.