Preheat your oven to 350°F. While it heats, grease a 9x9 inch baking pan (or 8x8 if you prefer thicker brownies) with butter or cooking spray, making sure to coat the bottom and all sides evenly. This prevents sticking and ensures clean edges.
In a medium bowl, sift together the flour, cocoa powder, baking soda, salt, and espresso powder. Sifting the cocoa is especially important here—it removes lumps and ensures the chocolate flavor distributes evenly throughout the brownies. I always sift my cocoa separately first, then combine with the other dry ingredients for the smoothest texture.
Cut the butter into small pieces and melt it in a large bowl (you can do this over low heat or in 30-second microwave intervals, stirring between each). Once melted and slightly cooled, add both the granulated sugar and packed brown sugar, stirring until well combined. The brown sugar adds moisture and fudginess, so pack it firmly when measuring.
Add the room-temperature eggs one at a time, stirring well after each addition to fully incorporate before adding the second egg. Then stir in the vanilla. Using room-temperature eggs helps them blend smoothly into the batter without creating lumps or cooling the mixture too much.
Gently fold the dry ingredient mixture from Step 2 into the wet ingredients from Step 4 using a spatula or wooden spoon. Stir just until no streaks of flour remain—don't overmix, as this can lead to tough brownies. I like to fold rather than stir vigorously to keep the batter light and fudgy.
Pour the batter into your prepared pan from Step 1, spreading it evenly to the corners. Bake for 30–35 minutes. The brownies are done when a toothpick inserted in the center comes out with a few moist crumbs (not wet batter, but not completely clean). Gluten-free batters can be more delicate, so don't overbake or they'll become dry.
Allow the brownies to cool in the pan for at least 15–20 minutes before cutting. This gives them time to set and firm up. For cleaner cuts and easier removal, let them cool completely, then refrigerate for 30 minutes if you have time.