Combine the milk, sugar, coffee beans, salt and ½ cup of the heavy cream in a medium saucepan over medium-high heat. Once the mixture is warm and just begins to bubble, remove from the heat and let steep at room temperature for 1 hour.
After steeping, return the saucepan with the coffee mixture to the burner over medium heat. Pour the remaining 1 cup heavy cream into a large bowl and set a mesh strainer over the top. In a separate bowl, whisk the egg yolks until smooth. Once the coffee mixture has become warm again, slowly pour the mixture into the bowl with the egg yolks, whisking constantly to temper the eggs. Return the egg-coffee bean mixture to the saucepan over medium high heat.
Cook the mixture, stirring constantly and scraping the bottom, until the mixture thickens and coats the spatula or spoon (about 170-175° F.) Pour the custard through the strainer and stir it into the cream. Press on the coffee beans in the strainer to extract as much of the coffee flavor as possible, then discard the beans (I used a heavy-bottomed drinking glass to do this.) Mix in the vanilla and ground coffee or espresso powder. Chill the batter over an ice bath, or in the refrigerator. Chill thoroughly in the refrigerator and then freeze in an ice cream maker according to the manufacturer’s instructions.