Serves 4 (or 2, with leftovers)
3 tablespoons olive oil
Generous pinch crushed red-pepper flakes
1 small white onion, finely chopped
2 teaspoons minced garlic
2 cans (28 ounces) crushed tomatoes
Coarse salt and ground pepper
¼ cup finely grated Parmesan, plus more for serving
¼ cup finely grated Pecorino Romano cheese, plus more for serving
2 tablespoons chopped flat-leaf parsley
1 large egg
1 pound ground beef chuck
½ cup plain dried breadcrumbs
1 cup lukewarm water
12 ounces spaghetti
1. Set a large pot of salted water to boil. Heat 1 tablespoon oil, the red-pepper flakes, onion and half of the garlic in a large saucepan over medium heat until garlic is sizzling, about 30 seconds. Stir in tomatoes and ½ teaspoon salt. Reduce heat to low and cook at a gentle simmer for 30 minutes.
2. In a bowl, combine Parmesan, parsley, egg, remaining garlic, 1 teaspoon salt and 1 teaspoon pepper. Add beef, breadcrumbs and water; mix gently, until just combined, with your hands. Form into 16 balls.
3. In a large Dutch oven or heavy pot, heat remaining 2 tablespoons olive oil over medium heat. Add meatballs, and cook, turning occasionally, until browned all over, 8 to 10 minutes. Add tomato sauce and bring to a simmer. Cover partially, and cook, stirring occasionally, until meatballs are cooked through, about 10 minutes longer.
4. Meanwhile, cook pasta until al dente. Drain, add to the sauce pot, and toss gently. Serve, topped with grated cheese.