Bring a large pot of water to a boil. Slice the guanciale into thin, 1x1-inch pieces. Set a medium skillet over medium-low heat and add the olive oil, followed by the guanciale. Cook until the guanciale is crispy, with a deep mahogany color, 8-10 minutes. Meanwhile, crack three egg yolks into a mixing bowl for the sauce.
Pasta: When the water is boiling, add two large pinches of salt, followed by the spaghetti. Cook until al dente, about 3 minutes less than what the box advises, stirring occasionally so it doesn't clump. Sauce: While spaghetti cooks, whisk the egg yolks with the Pecorino Romano and Parmigiano Reggiano. The mixture will be thick and clumpy. One tablespoon at a time, whisk in 3–4 tablespoons of hot pasta water until the sauce is smooth, creamy, and the consistency of a thin batter, 1–2 minutes. (Adding too much hot water at once will scramble the eggs, so take it slow!) Season with black pepper. By now, the guanciale should be done; turn off the heat and let rest 5 minutes. Reserve 1 cup of the pasta water and set aside.
Assembly: When the pasta is tender on the outside but still firm in the middle ("al dente"), drain and return spaghetti to the pot. Turn off the heat. Add the reserved pasta water, guanciale, and all but ¼ cup of the rendered guanciale fat to the noodles and toss well to combine. Add the egg-and-cheese mixture, stirring vigorously to thicken the sauce. At first it will seem watery, but after 1–2 minutes of stirring, the sauce will be thick enough to coat the back of a spoon. Taste for seasoning, and add more black pepper if necessary. Transfer to a platter or bowl. Garnish with more grated Pecorino Romano and black pepper. Serve immediately.