In a large bowl, mix together the ground beef, pork, egg, breadcrumbs, parmesan cheese, salt, pepper, garlic powder and onion powder until well combined.
Using your hands, form into ¾-1-inch meatballs to make about 28-30 meatballs.
Drizzle 1 tablespoon of olive oil in a large Dutch oven or deep pot over medium high heat. Once oil is hot, place the meatballs in one layer and brown on 3 sides until they are a light golden brown, about 4-5 minutes total. Remove the meatballs from the pot and set aside.
Add 1 tablespoon to the same pot over medium high heat. Once sizzling, add the onion, carrots, and celery. Cook, stirring occasionally, for about 2 minutes, scraping the brown bits from the bottom of the pot. Stir in the minced garlic and Italian seasoning and sauté for 30 seconds.
Pour in the chicken stock and bring the soup to a boil.
Carefully add the meatballs and pasta and give it a good stir. Cover the pot with a lid, and gently simmer for 8-10 minutes, or until pasta is al dente. Stir in the chopped spinach during the last minute to wilt. Season with salt and pepper to taste.
Ladle the soup into bowls, garnish with freshly grated parmesan cheese and serve with crusty bread or a fresh salad if desired.