Preheat the oven to 350°F. Lightly grease an 8-inch square baking pan, unless it's non-stick.
In a medium bowl, whisk together the hot water, cocoa powder, and espresso powder (if using) until smooth. Set aside to cool slightly while preparing the other ingredients.
In a large mixing bowl, combine the flour, granulated sugar, baking soda, and salt. Whisk thoroughly to remove any lumps and ensure even distribution of the leavening agents.
Pour the cocoa mixture into the dry ingredients and whisk until the batter is smooth and no dry patches remain. Be sure to scrape the bottom and sides of the bowl. Add the vanilla extract, vinegar, and oil, and continue whisking until the batter is smooth and it starts to bubble.
Pour the batter into the prepared pan, smoothing the top with a spatula. Bake for 25-30 minutes, or until a toothpick inserted into the center comes out clean or with just a few moist crumbs. Let the cake cool completely at room temperature.
Once the cake has cooled, prepare the icing. In a medium bowl, whisk together the powdered sugar, cocoa powder, and salt. Gradually add the water, mixing constantly, until you achieve a smooth, spreadable consistency. If the icing is too thick, add more water 1 teaspoon at a time. If it is too thin, add more powdered sugar 1 tablespoon at a time.
Spread the icing evenly over the top. Let the icing set for about 30 minutes before slicing and serving.