Preheat the oven to 425°F (220°C).
Season the beef fillet generously with salt and pepper.
Heat the olive oil in a skillet over medium-high heat. Sear the beef fillet on all sides until browned, about 2 minutes per side. Remove from the skillet and let cool.
In the same skillet, add the mushrooms, onion, and garlic. Cook until the mushrooms have released their liquid and the mixture is dry, about 10 minutes. Stir in the parsley and season with salt and pepper to taste. Remove from heat and let cool.
Lay out a sheet of plastic wrap and place the prosciutto or bacon slices on it, overlapping slightly to form a rectangle. Spread the mushroom mixture evenly over the prosciutto or bacon.
Place the seared beef fillet on top of the mushroom mixture. Using the plastic wrap to help you, roll up the prosciutto or bacon and mushroom mixture around the beef fillet to form a tight cylinder. Twist the ends of the plastic wrap to seal the cylinder. Refrigerate for 30 minutes.
Roll out the puff pastry on a lightly floured surface to a rectangle large enough to wrap around the beef fillet. Remove the plastic wrap from the beef fillet and place it in the center of the puff pastry. Brush the edges of the puff pastry with the beaten egg, then fold the pastry over the beef fillet, pressing the edges to seal.
Place the wrapped beef fillet seam-side down on a baking sheet. Brush the top of the puff pastry with the beaten egg. Bake in the preheated oven for 25-30 minutes, or until the pastry is golden brown and the beef is cooked to your liking.
Let the Beef Wellington rest for 10 minutes before slicing and serving.