Prep: 15 minutes
Total: 45 minutes
1 slice stale bread
1/4 cup whole milk
8 ounces ground beef
8 ounces ground pork
1 cup grated parmesan cheese, plus more to serve
Kosher salt and freshly ground black pepper, to taste
1 small garlic clove, grated
1/4 cup olive oil
12 cups chicken stock or broth
1 pound fresh baby spinach or 2 (10-ounce) packages frozen spinach
3 large eggs, lightly beaten
1. Make the meatballs: Place the bread in a food processor and pulse until crumbs. You should have 1/2 cup. If using store-bought breadcrumbs, use 1/3 cup. Transfer the breadcrumbs to a bowl with the milk and let soak for 5 minutes, then add the beef, pork, 1/4 cup parmesan cheese, and the garlic. Season to taste with salt and pepper. Make a small meatball and cook it in a hot skillet to check for seasoning.
2. Roll the meatballs into 1/2 ounce balls, about 1 tablespoon. Heat the oil in a large Dutch oven over medium. Working in batches, cook the meatballs, turning as needed, until browned all over, 5 minutes. Add all of the meatballs back to the saucepan along with the chicken stock. Bring to a simmer over medium and add in the spinach. Cook until the meatballs are tender and cooked through and the spinach has wilted, about 10 minutes.
3. Meanwhile, whisk the remaining 3/4 cup parmesan cheese with the eggs in a medium bowl. Gradually drizzle the mixture into the soup, stirring to ensure the eggs and the cheese don’t clump too much. Season to taste with salt and pepper and serve with more parmesan cheese.