Mix together in a bowl the beef and pork mince, Parmesan cheese, bread crumbs, milk, egg, parsley, garlic, pepper and onion. Roll into small meatballs, about 1 to 2 teaspoons each.
Heat olive oil in a large frypan over medium-high heat. Brown meatballs in batches and drain on paper towels, wiping out pan between batches and adding more oil as needed.
Melt butter in a large pot over medium heat. Add carrots, celery and onion and cook until slightly softened, about 8 minutes. Stir in the meatballs, stock, tomato paste, tomatoes, salt and pepper. Bring to a boil then reduce heat to low. Simmer for 30 minutes. Skim fat from surface.
Bring a large pot of salted water to a boil. Add pasta and cook until al dente, 8 to 10 minutes. Drain. Stir into the soup.