Combine all the ingredients for the meatballs in a bowl. Add a pinch of salt and pepper and mix with your hands until combined. Roll into tablespoon-sized meatballs. Note: Fry or microwave a small piece and adjust seasonings if needed.
Heat 1 tablespoon extra virgin olive oil in a soup pot over medium heat. Add the meatballs in an even layer, cooking in batches if needed. Fry for 3 minutes per side until golden brown all over. They do not need to be cooked through. Transfer all the meatballs to a plate.
Start the soup:
To the pot, add 1 tablespoon olive oil. If you use pork or beef, you may not need the extra oil.
Turn the heat to medium and add the onion and mushrooms. Season with salt and pepper. Cook for 8–10 minutes or until the mushrooms turn golden brown.
Add the garlic and thyme and cook for 1 minute. Add a sprinkle of crushed red pepper.
Simmer the soup:
Pour in the arrabbiata sauce and the water. Bring to a boil and add the meatballs. Reduce heat and simmer for 30 minutes. Taste and season with salt, pepper, and a pinch of sugar if you like.
Make the pasta:
Bring a large pot of water to a boil and add a big pinch of salt. Add the pasta and cook according to the package instructions. Drain and set aside.
Finish the soup:
Once the meatballs reach 165ºF, add the spinach and cooked pasta. Simmer for 5 minutes. Taste and adjust seasonings. Turn off the heat.
To serve:
Mix together the Parmesan and black pepper in a bowl.
Ladle the soup into bowls and serve with the Parmesan mixture on the side. Enjoy!