In the bowl of a stand mixer fitted with the dough hook attachment, add the milk, egg, sourdough discard, cane sugar, and instant yeast.
Mix until combined.
Add in the flour and salt.
Mix on low until almost incorporated, you may still see bits of flour, which is fine.
Add in the butter. Mix on low until combined into a smooth dough, about 5 minutes.
Cover the bowl with a kitchen towel (or plastic wrap) and let rest for 15 minutes. This lets the flour hydrate.
On a clean surface, knead the dough for about 5 minutes, or until smooth. Round the dough into a tight ball and place in a clean bowl.
Cover with plastic wrap and set in a warm place. Let the dough rise until doubled in volume. The dough should look well-risen and feel like it’s full of air, this can take anywhere from 1 to 2 hours.
Divide the dough into 10 equal pieces, about 77 grams each. I use a bench scraper to do this, but you can also use a knife or rip the dough with your hands too!
Gently roll the each piece of dough out into a tube about 6 inches long.
Place the shaped dough on a 9x13-inch baking sheet or hot dog pan.
For the final proof, cover the baking sheet with plastic wrap and let the dough rise until puffy and doubled in volume. About 30 minutes to 1 hour.
As your dough rises, preheat the oven to 350°F. Beat the egg for the egg wash. Using a pastry brush, brush the top of the dough with egg wash.
Bake for 20 to 25 minutes, or until the buns are golden brown and register 190°F when probed with a thermometer.