Heat olive oil in a large pot over medium-high heat. Add ground beef and cook, breaking it apart, until browned, about 5 minutes. Drain excess fat if needed.
Add onion and garlic; cook for 2 minutes until softened.
Stir in carrots and celery; cook for 3 minutes.
Pour in beef broth, diced tomatoes, barley, thyme, and bay leaf. Bring to a boil.
Reduce heat to low, cover, and simmer for 25-30 minutes until barley is tender.
Remove bay leaf. Season with salt and pepper to taste. Ladle into bowls and garnish with parsley.
Tips
For a richer flavor, use homemade beef broth or low-sodium store-bought.
Store leftovers in an airtight container in the refrigerator for up to 4 days. The soup will thicken; add a splash of broth when reheating.
To freeze, cool completely and transfer to freezer-safe containers. Freeze for up to 3 months.