01 - Combine whole milk, heavy cream, half the sugar, and salt in a medium saucepan. Heat over medium heat until steaming, taking care not to boil the mixture.
02 - Whisk egg yolks with remaining sugar in a separate bowl until the mixture becomes pale and thickened in texture.
03 - Gradually pour approximately 1 cup of the hot dairy mixture into the yolks while whisking continuously to prevent curdling and properly temper the eggs.
04 - Return the yolk mixture to the saucepan. Cook over medium-low heat, stirring constantly with a wooden spoon, until the custard thickens enough to coat the back of the spoon, reaching 170–175°F. This typically takes 4–6 minutes.
05 - Remove from heat immediately. Stir in brewed coffee, espresso powder if using, and sweetened condensed milk until completely blended and smooth.
06 - Strain the custard through a fine-mesh sieve into a clean bowl. Allow to cool to room temperature, then cover and refrigerate for at least 4 hours, or preferably overnight, until thoroughly chilled.
07 - Process the chilled custard in an ice cream maker according to the manufacturer's instructions until it reaches a soft-serve consistency.
08 - Transfer the churned ice cream to an airtight container. Freeze for a minimum of 2 hours before serving to achieve a firmer, scoopable texture.