Put the kettle on to boil for the pasta. Peel and finely chop the onion and garlic and set aside. Chop bacon and fry in olive oil in a large frying pan or pot (it will need to be big enough to mix the pasta and the sauce together before serving).
Get a pan of boiling water, add plenty of salt and a glug of olive oil and keep it simmering. When the bacon just starts to turn crispy, add spaghetti to the boiling water. When the bacon is nice and crispy, add the onion and garlic to the pan along with a knob of butter. Turn the heat down and leave to cook gently. Now make your sauce: in a jug, whisk the eggs, cream, Parmesan and black pepper. When the pasta is Al Dente, drain it, reserving some of the cooking water.
Add the pasta to the pan with the bacon and briefly stir (this helps to cool everything slightly to avoid scrambling the eggs). Now pour in all of the egg-cream mixture and mix everything together thoroughly. The residual heat from the pasta and bacon will gently cook the eggs and melt the cheese, resulting in an amazingly rich creamy sauce. Add some of the pasta cooking water to achieve a more fluid consistency. Keep stirring until the sauce is silky and smooth, then serve and eat immediately.