Put a large saucepan of water on to boil. Finely chop the pancetta, having first removed any rind. Finely grate both cheeses and mix them together. Beat the eggs in a medium bowl, season with a little freshly grated black pepper and set everything aside.
Add 1 tsp salt to the boiling water, add the spaghetti and when the water comes back to the boil, cook at a constant simmer, covered, for 10 minutes or until al dente (just cooked).
Squash the garlic with the blade of a knife, just to bruise it. While the spaghetti is cooking, fry the pancetta with the garlic. Drop the butter into a large wide frying pan or wok and, as soon as the butter has melted, tip in the pancetta and garlic. Leave these to cook on a medium heat for about 5 minutes, stirring often, until the pancetta is golden and crisp. The garlic has now imparted its flavour, so take it out with a slotted spoon and discard.
Keep the heat under the pancetta on low.When the pasta is ready lift it from the water with a pasta fork or tongs and put it in the frying pan with the pancetta (see left). Don’t worry if a little water drops in the pan as well (you want this to happen) and don’t throw the rest of the pasta water away yet.
Mix most of the cheese in with the eggs, keeping a small handful back for sprinkling over later. Take the pan of spaghetti and pancetta off the heat. Now quickly pour in the eggs and cheese and, using the tongs or a long fork, lift up the spaghetti so it mixes easily with the egg mixture, which thickens but doesn’t scramble, and everything is coated. Add extra pasta cooking water to keep it saucy (several tablespoons should do it). You don’t want it wet, just moist. Season with a little salt, if needed.
Use a long-pronged fork to twist the pasta on to the serving plate or bowl. Serve immediately with a little sprinkling of the remaining cheese and a grating of black pepper. If the dish does get a little dry before serving, splash in some more hot pasta water and the glossy sauciness will be revived.