Bring a large saucepan of salted water to the boil. Grab the spaghetti in one fistful and place the spaghetti vertically into the water. As it softens, push it further into the water until the pan will take it all. Stir for the first 3 minutes to stop it sticking together.
At the same time, heat the oil and butter in the frying pan until foaming, add the pancetta, onions and garlic and cook over a medium heat for 3 minutes until it has a nice golden colour.
Add the mushrooms then cook for 6-7 minutes until slightly softened and with a little colour.
Meanwhile beat the eggs in a bowl large enough to take the pasta, fold in the parmesan and a few turns of black pepper.
A few minutes before the pasta is ready throw in the broccoli and frozen peas to cook.
Add the spinach and tomatoes to the bacon and onion pan to wilt.
Drain the pasta and vegetable in a colander and with water still clinging to the pasta, tip it onto the eggs and cheese.
Immediately fold together so that the heat of the pasta and its clinging water combine to cook the eggs and produce a creamy emulsion.
Fold in the crispy bacon mixture and stir well to combine.
Serve immediately with a topping of extra grated parmesan.