Heat the olive oil in a large stockpot or Dutch oven over medium-high heat. Pat the beef cubes dry with paper towels and season generously with salt and pepper. Sear the beef in batches until browned on all sides. Remove the beef from the pot and set aside.
Add the chopped onion to the pot and cook until softened, about 5-7 minutes, scraping up any browned bits from the bottom. Add the minced garlic and cook for another minute until fragrant.
Return the seared beef to the pot. Pour in the beef broth and add the undrained diced tomatoes, chopped carrots, chopped celery, cubed potatoes, thyme, rosemary, and bay leaves. Stir everything together.
Bring the soup to a boil, then reduce the heat to low, cover, and simmer for at least 1.5 to 2 hours, or until the beef is very tender. Stir occasionally.
During the last 15 minutes of simmering, stir in the frozen peas and corn. Continue to simmer until the peas and corn are heated through.
Remove the bay leaves. Taste and adjust seasoning with salt and pepper as needed. Ladle the hot soup into bowls and garnish with fresh parsley, if desired.