In a large bowl, combine ground beef, breadcrumbs, Parmesan cheese, egg, garlic powder, salt, and pepper. Mix gently with your hands until just combined. Do not overmix.
Roll the mixture into small meatballs (about 1 inch in diameter).
In a large pot or Dutch oven, heat olive oil over medium heat. Add onion and cook until softened, about 5 minutes. Add garlic and cook for 1 minute more.
Pour in beef broth and diced tomatoes. Bring to a boil, then reduce heat and simmer for 10 minutes.
Add carrots, celery, and meatballs to the pot. Simmer for 15-20 minutes, or until meatballs are cooked through and vegetables are tender.
Stir in pasta and Italian seasoning. Cook until pasta is tender, about 8-10 minutes.
Season with salt and pepper to taste. Garnish with fresh parsley before serving.