01 - Preheat oven to 350°F (175°C). Grease a 9x9-inch baking dish with nonstick spray or butter. Arrange bread cubes evenly in the dish.
02 - In a medium bowl, whisk together eggs, whole milk, heavy cream, granulated sugar, butter, vanilla extract, ground cinnamon, and kosher salt until well combined.
03 - Pour the custard mixture over the bread cubes, ensuring all pieces are well coated. Let stand for 10 minutes to soak.
04 - Bake for 40-45 minutes until the pudding is set and golden brown. The center should be firm but slightly soft.
05 - In a small saucepan, combine sugar and water over medium heat. Stir until the sugar dissolves, then stop stirring and cook until the mixture turns a deep amber. Remove from heat and immediately whisk in butter, heavy cream, salt, and vanilla extract until smooth.
06 - Allow bread pudding to cool for 10 minutes. Drizzle with warm caramel sauce before serving.