Mix bread flour, sugar, salt, and yeast in a large bowl. Add the egg and warm milk, then knead until a dough forms.
Incorporate the room temperature butter into the dough and knead until smooth. Cover and let rise for about 1 hour, or until doubled in size.
While the dough is rising, prepare the custard cream. Whisk egg yolks and sugar in a bowl until pale. Add flour and mix until smooth.
In a saucepan, heat the milk until just boiling, then slowly pour it into the egg mixture, whisking constantly.
Return the mixture to the pan and cook over low heat until thickened.
Remove from heat and stir in butter, salt, and vanilla essence. Let it cool.
Once the dough has risen, punch it down and divide it into 8 equal pieces.
Shape each piece into a ball and place on a baking sheet. Cover and let rise again for 30 minutes.
Heat oil in a deep fryer or pot to 350°F (175°C). Fry the donuts in batches until golden brown, about 2-3 minutes per side. Drain on paper towels.
Once cooled, fill each donut with custard cream using a piping bag.
Dust with powdered sugar or roll in granulated sugar (optional). Enjoy!