Cook the pasta: Bring a large pot of salted water to a boil. Cook the spaghetti according to package instructions until al dente. Reserve 1/2 cup of pasta cooking water and then drain the pasta.
Cook the pancetta: While the pasta cooks, heat a little olive oil in a pan over medium heat. Add the garlic and cook for 1 minute until fragrant. Remove the garlic, then add the pancetta or guanciale. Cook until crispy, about 3-4 minutes. Remove from heat.
Prepare the egg mixture: In a large bowl, whisk together the eggs, grated Parmesan, Pecorino Romano, and a generous amount of freshly ground black pepper.
Combine: Add the hot, drained pasta to the pan with the pancetta. Toss quickly to combine and warm the pasta. Then, slowly add the egg mixture, tossing continuously to create a creamy sauce (the heat from the pasta will cook the eggs). Add some of the reserved pasta water if the sauce is too thick.
Serve: Serve immediately with extra grated cheese and black pepper on top.