In a large pot, heat the olive oil over medium heat. Add the diced onion and minced garlic, sautéing until the onion is translucent, about 3-4 minutes.
Pour in the beef broth and water, then stir in the thyme, parsley, black pepper, and salt. Bring the mixture to a boil.
Add the sliced carrots and diced potatoes to the pot. Reduce the heat and let it simmer for about 10 minutes, or until the vegetables are tender.
In a mixing bowl, combine the ground beef, breadcrumbs, Parmesan cheese, egg, Worcestershire sauce, garlic powder, and onion powder. Mix until well combined.
Form the meat mixture into small meatballs, about 1 inch in diameter.
Carefully drop the meatballs into the simmering soup. Cook for an additional 15-20 minutes, or until the meatballs are cooked through.
Stir in the frozen peas and cook for another 5 minutes. Adjust seasoning if necessary.
Serve hot, garnished with fresh parsley.