Bring a large pot of salted water to the boil. Cook spaghetti until al dente, reserving 250 ml pasta water before draining.
While pasta cooks, fry the guanciale in a large cold pan over medium heat until the fat renders and the edges are crisp. Remove from heat and set aside.
In a bowl, whisk together egg yolks, whole egg, Pecorino Romano, Parmigiano-Reggiano and black pepper until smooth.
Add the hot drained pasta to the pan with guanciale (off the heat). Toss well to coat in the fat.
Add the egg mixture and toss rapidly, adding pasta water a splash at a time to create a silky, creamy sauce. The residual heat cooks the eggs — do not let the pan return to direct heat or the eggs will scramble.
Serve immediately with extra Pecorino and a generous grind of black pepper.