In a large bowl, stir warm water, sugar and yeast. Let sit 5–10 minutes until foamy.
Add olive oil, salt and 1 cup of the flour to the yeast mixture. Stir, then gradually add remaining flour until a shaggy dough forms.
Turn dough onto a lightly floured surface and knead 6–8 minutes until smooth and elastic. Add a little flour if dough is sticky.
Place dough in a lightly oiled bowl, cover with a kitchen towel or plastic wrap and let rise in a warm place about 45 minutes to 1 hour, or until doubled in size.
Preheat oven to 375°F (190°C). Punch down the dough and roll it into a roughly 12x10 inch rectangle on a floured surface.
Sprinkle shredded mozzarella, Parmesan, Italian seasoning and garlic powder evenly over the dough, leaving a small border. Layer pepperoni slices on top of the cheese.
Starting from a long edge, roll the dough tightly into a log and pinch the seam to seal. Place seam-side down on a parchment-lined baking sheet and shape into a loaf.
Brush the loaf with beaten egg. Make a few shallow slashes on top for steam release.
Bake in the preheated oven 20–25 minutes, until golden brown and internal temperature reaches 190°F (88°C). If the top browns too quickly, tent with foil.
Remove from oven and let cool 10 minutes before slicing. Serve warm with marinara sauce if desired.
Notes
Store leftovers wrapped in foil in the refrigerator up to 3 days. Reheat in a low oven to preserve crisp crust.