01 - Preheat oven to 350°F. Line a 15×10-inch jelly roll pan with parchment paper and lightly grease the surface.
02 - In a medium bowl, sift together the all-purpose flour, cocoa powder, baking powder, and salt. Set aside.
03 - In a large bowl, beat the eggs and granulated sugar with an electric mixer on high speed for 5 minutes until the mixture is thick, pale, and forms ribbons when lifted.
04 - Mix in the vanilla extract. Gradually fold in the dry ingredients, alternating with the milk, using gentle strokes until just combined. Do not overmix.
05 - Spread the batter evenly across the prepared jelly roll pan. Bake for 10 to 12 minutes, or until the cake springs back lightly when touched in the center.
06 - While the cake bakes, lay a clean kitchen towel flat and dust it generously with powdered sugar. Immediately upon removing the cake from the oven, invert it onto the towel. Peel away the parchment paper. Starting from a short end, tightly roll the cake and towel together. Transfer to a wire rack to cool completely, about 45 minutes.
07 - Gently unroll the cooled cake. Spread the caramel sauce evenly over the entire surface. Sprinkle the toasted chopped pecans uniformly over the caramel layer.
08 - Carefully re-roll the cake, this time without the towel, keeping it snug. Place seam-side down on a serving platter.
09 - In a small saucepan, heat the heavy cream and butter until just simmering. Pour the hot mixture over the chopped semi-sweet chocolate in a heatproof bowl. Let sit for 2 minutes, then whisk until completely smooth. Allow to cool slightly until it reaches a spreadable consistency.
10 - Pour the ganache over the rolled cake, spreading evenly to coat the top and sides. Garnish with additional chopped pecans, a drizzle of caramel, and chocolate shavings as desired.
11 - Refrigerate for 30 minutes to allow the ganache to set. For the cleanest slices, wipe the knife between each cut. Serve at room temperature for the best texture.