Activate Yeast: In a large bowl, combine warm water, yeast, and sugar. Stir gently and let sit for 5 minutes until the yeast is foamy.
Combine Wet Ingredients: To the yeast mixture, add the egg, melted butter, and salt. Whisk until well combined.
Add Flour: Gradually add 3 cups of flour to the wet ingredients, mixing with a wooden spoon or spatula until the dough starts to come together.
Knead the Dough: Turn the dough out onto a lightly floured surface. Knead for 5-7 minutes, adding the remaining flour as needed, until the dough is smooth and elastic.
First Rise: Place the dough in a greased bowl, turning to coat all sides. Cover with plastic wrap and let rise in a warm place for 1 hour, or until doubled in size.
Shape Buns: Punch down the dough and divide it into 12 equal pieces. Shape each piece into a smooth ball and place them on a baking sheet lined with parchment paper.
Second Rise: Cover the buns with a clean kitchen towel and let rise for another 30 minutes.
Preheat & Prepare: Preheat oven to 375°F (190°C). Brush the tops of the buns with the egg wash (optional) and sprinkle with sesame seeds or poppy seeds (optional).
Bake: Bake for 20-25 minutes or until golden brown.
Cool: Let the buns cool completely on a wire rack before slicing and serving.