Activate the yeast: In a large bowl, whisk warm milk and sugar.
Sprinkle the yeast over the top and let it sit for 5–10 minutes until foamy. If it doesn’t foam, your yeast may be inactive or the milk was too hot or too cold.
Mix the dough: Add the egg, melted butter, and salt to the yeast mixture. Whisk to combine.
Add about 3 1/2 cups of flour and stir with a spoon or dough hook until a shaggy dough forms. Add the remaining flour as needed, a little at a time, until the dough is soft and slightly tacky but not sticky.
Knead: Knead the dough on a lightly floured surface for 7–10 minutes by hand (or 5–7 minutes in a stand mixer on low). The dough should be smooth, elastic, and bounce back when gently pressed.
First rise: Place the dough in a lightly greased bowl, cover with plastic wrap or a clean towel, and let it rise in a warm spot until doubled in size, about 60–90 minutes.
Shape the rolls: Gently punch down the dough to release air.
Turn it out and divide into 12–16 equal pieces, depending on the size you prefer. Tuck edges under to form smooth balls. For even size, weigh each piece (about 60–75g each).
Second rise: Arrange the dough balls in a greased 9x13-inch baking dish or on a parchment-lined sheet, spacing evenly.
Cover and let rise until puffy and touching, about 30–45 minutes.
Preheat and brush: Preheat oven to 375°F (190°C). Brush the tops lightly with melted butter for a golden finish.
Bake: Bake 15–20 minutes, until the tops are golden brown and the internal temperature reaches about 190°F (88°C). If browning too quickly, tent loosely with foil.
Finish: Brush warm rolls with more melted butter.
Sprinkle with flaky sea salt if you like. Let cool for 10 minutes before serving.