Clean, peel and dice the onion and celery, set aside in a medium bowl.
Clean, peel and dice the potatoes and carrots, set aside in a separate bowl.
Add the oil to a Dutch oven or large stock pot and heat over medium-high.
Once hot, add the onions and celery and sauté until the onions are tender and slightly translucent.
Add the garlic to the mixture, stir and continue to cook for 30 seconds. (Add a little more olive oil if necessary.)
Add the beef to the pot and cook until browned, breaking it up into smaller pieces. (If you don’t use lean beef, you may need to drain off the fat before proceeding to the next step. I just take a few paper towels, fold them into a thick square and use my tongs to dip into the pot and soak up the excess grease. Then just discard the paper towel.)
Next, sprinkle the flour over the beef and stir to combine and cook for 1-2 minutes.
Stir in the tomato paste.
Add the broth, tomatoes, Worcestershire sauce, fish sauce if using, oregano, basil, potatoes and carrots. Stir to combine.
Increase the heat to high and bring the soup to a boil. Then reduce the heat to a simmer and cook covered, with the lid on but slightly vented, for 30-45 minutes or until the potatoes and carrots are tender.
Add the baking soda and stir. (The soup will bubble and foam, but then will settle down. The baking soda neutralizes the acid from the tomatoes and paste allowing the flavors to stand out without the harsh acid.)
Add more broth if the soup is too thick or allow it to simmer longer if you’d like it thicker.
Add the peas and stir to combine.
Add salt and pepper a pinch at a time, stir and taste. Then add more if necessary.