Chop the chocolate finely and place it in a medium sized heat safe bowl. Place a fine mesh sieve over the bowl.
Whisk the egg yolks until smooth. Add in the sugar and continue whisking for two minutes, until the mixture turns a pale smooth yellow. Add the salt, then whisk in the heavy cream and whole milk until completely combined.
Pour the egg and cream mixture into a medium saucepan and heat on very low, stirring constantly with a wooden spoon. Make sure to scrape the bottom of the pan with the spoon as you stir to prevent it from sticking. Once the mixture is hot, but not simmering, cook for 10 to 12 minutes until thickened and at 175°F. Use a candy thermometer to monitor the temperature. Do not allow the mixture to come to a boil or even a simmer. Cook over the lowest heat possible.
Pour the mixture through the sieve and onto the bowl of chocolate. The sieve will remove any lumps that formed while cooking the custard. Let the custard mixture sit for 3 to 5 minutes. While it is sitting, combine the water and espresso powder together in a separate bowl and whisk until combined. Then, whisk the custard and chocolate together until smooth. Add the espresso mixture and vanilla and whisk until smooth and shiny.
Pour the custard into 8 ramekins and allow to cool for 30 minutes before transferring to the refrigerator.
Cover each ramekin with plastic wrap and place in the refrigerator for at least two hours or until completely set and chilled. When you are ready to serve, top with whipped cream and chocolate shavings.