In a bowl, whisk the cream cheese and sugar together until smooth. A balloon whisk is great here or you can use a wooden spoon. Add the egg and vanilla and whisk again till the egg is incorporated. Place the bowl in the fridge while you make the brownie batter.
Now preheat the oven to 175 C. Line an 8" square pan non-stick baking paper, leaving a little overhang for easy removal.
In a bowl placed over a pot of simmering water, melt the butter, chocolate and cocoa until you have a smooth mixture. Let this cool while you get the rest of the batter ready.
Beat the eggs, sugar and vanilla in a large bowl till pale and thickened, about 3 to 4 minutes. An electric mixer on medium to high speed will get the best results.
Add the cooled chocolate mixture to the egg mixture and beat again on low speed till combined.
Sift in the flour, baking powder and salt, if using and fold to combine into a thick batter.
Spread the brownie batter into the prepared dish and then drop the cheesecake batter over it in spoonfuls. Use a toothpick or sharp knife to swirl it all around (see photo in the post above). Some of it will get mixed into the brownie batter, that's fine, it adds more flavour.
Bake for 25 to 30 minutes until a toothpick poked in the center comes out with moist crumbs and no wet batter.
Allow the brownies to cool completely at room temperature (ideally overnight, loosely covered) before slicing with a sharp knife into 16 squares. Best stored at room temperature in an airtight tin for 2 to 3 days in humid environments, after which they can be kept in the fridge for a week, or even frozen for a month. They are fudgiest on day one and will become slightly drier (not in a bad way) and more cakey as the days go by. Happy baking!