Preheat the oven to 350 degrees, then line an 8×8-inch square baking pan (or 9x13 inch pan if doubling) with parchment, then rub with softened butter or spray it with cooking spray.
Fill a medium saucepan with about 1-2 inches of water (I use the same dirty pan I made the caramel in - the boiling water will actually help clean it) and set it on the stove over high heat. When the water starts to boil, lower the heat to a simmer and place a medium heatproof bowl over top.
Add the butter to the bowl and allow it to melt.
Once melted, add in the chocolate and give it a quick stir. Turn the heat off and let it sit for 2-3 minutes, then stir until it's totally smooth.
Remove the bowl from the pot of water and add the sugar and whisk until incorporated
Whisk in the eggs one at a time, being sure to fully incorporate the first before adding the second.
Stir in the vanilla and salt.
Add the flour and use a rubber spatula or wooden spoon to mix until fully incorporated.
When the caramel is firm, remove it from the freezer and chop or break it into pieces about 1 inch in size. It may be brittle from the freezer - this is normal.
Fold ⅔ of the caramel bits into batter. The cold pieces of caramel will cause the batter to seize up - this is normal.
Pour the batter into the prepared pan and spread out until even.
Arrange the remaining caramel bits evenly on top, then sprinkle all over with flaky sea salt.
Bake for about 25-30 minutes, or until a toothpick inserted into the center comes out clean.
Allow the brownies to cool for at least 30 minutes before cutting and serve warm, or chill in the refrigerator for several hours and serve cold. Cold brownies will be easier to cut into clean squares.