In a mixing bowl, combine the ground beef, breadcrumbs, Parmesan cheese, parsley, minced garlic, egg, salt, and black pepper. Mix until just combined.
Shape the mixture into small meatballs, about 1 inch in diameter.
Heat the olive oil in a large pot over medium heat. Add the meatballs and sauté until they are browned on all sides. Remove and set aside.
In the same pot, add the onion, carrots, and celery. Sauté for about 5-7 minutes until the vegetables are tender.
Pour in the chicken broth and add the diced tomatoes, oregano, and basil. Bring to a boil.
Once boiling, add the meatballs back into the pot and reduce heat to a simmer. Cook for about 15 minutes.
Stir in the pasta and cook according to package instructions until al dente, usually about 8-10 minutes.
Taste the soup and season with additional salt and pepper if needed.
Serve hot, garnished with fresh basil leaves if desired.