Preheat the oven to 350F (180C). Line an 8x8 inch (20x20 cm) square pan with parchment paper or aluminum foil so that there's an overhang around the edges.
Chop the butter into cubes and finely chop the chocolate. Place in a heat proof bowl. Melt together either in a double boiler over low heat (be sure the bottom of the bowl isn't touching the water in the pan below) or in the microwave. Microwave for 45-second intervals on medium power, then stir between each interval. Go slowly to prevent burning and the chocolate becoming grainy.
Let the mixture cool slightly, then whisk in the granulated sugar, brown sugar, eggs and vanilla extract until smooth.
Sift in the flour, cocoa and salt. Gently whisk together until you no longer see streaks or lumps of dry ingredients.
Reserve 1 heaping cup of brownie batter. Pour the rest of the batter into the prepared pan and smooth the top into an even layer.
Spoon/pour the caramel sauce over the brownie batter in the pan and smooth into an even layer. If the caramel sauce has started to harden, return to the burner over very low heat and stir gently to allow it to gently melt.
Drop spoonfulls of the reserved 1 cup of brownie batter over top of the caramel, then smooth into an even layer. If not all of the caramel is covered, that's OK.
Bake in the preheated oven for about 30-35 minutes, or until the tops are set and an inserted toothpick comes out clean or with gooey caramel, but without gooey brownie batter.
Cool the brownies in the pan until the pan is no longer warm to the touch. This will take about 4 hours. Alternatively, you can speed up the process by placing the pan on a cooling rack in the fridge to cool. Cooling the brownies fully before slicing is necessary for the caramel to set.
Once the brownies are completely cooled, lift them out of the pan using the overhang of the parchment paper/aluminum foil. Place on a cutting board and slice with a thin, sharp knife. I recommend storing brownies in the fridge