Pat the beef dry and season. Use paper towels to dry the cubes, then sprinkle generously with salt and pepper. Dry meat browns better and gives you more flavor.
Brown the beef in batches. Heat the oil in a large pot or Dutch oven over medium-high heat. Add a single layer of beef and sear until deeply browned on two sides, 6–8 minutes per batch.
Don’t crowd the pot; remove to a plate as you go.
Soften the aromatics. Reduce heat to medium. Add onion, carrot, and celery with a pinch of salt. Cook, stirring, until softened and lightly golden, about 6–8 minutes.
Add garlic and cook 30 seconds until fragrant.
Build the base. Stir in tomato paste and cook 1 minute to caramelize. Add Worcestershire, thyme, oregano, and bay leaves. Scrape up any browned bits from the bottom of the pot.
Add liquids and simmer. Return beef (and any juices) to the pot.
Pour in diced tomatoes and 6 cups of broth to start. Bring to a boil, then reduce to a gentle simmer. Cover partially and cook 45–60 minutes, stirring occasionally, until the beef starts to turn tender.
Add sturdy vegetables. Stir in potatoes and green beans.
Simmer another 20–25 minutes, until the potatoes are just tender. Add more broth if the soup gets too thick.
Finish with quick-cooking veggies. Add corn and peas. Simmer 5–8 minutes.
Taste and adjust with salt and pepper. Remove bay leaves.
Rest and serve. Let the soup sit off heat for 10 minutes so flavors settle. Ladle into bowls and top with chopped parsley.
Serve with crusty bread if you like.