
Bring a pot with plenty of water to a boil. Add pork spare ribs with some salt, bring back to a boil and let it boil for 2 more minutes. Remove the ribs and rinse under water. Discard the liquid.
Clean the pot or in a clean pot, add pork spare ribs, 5 cups of water, shallot and 1/2 teaspoon of salt. Bring to a boil, then lower heat to a simmer, cover the pot. Skim off any foams/impurities.
While the ribs are being simmered, peel and cut potatoes into 1-inch cubes. Peel and roll-cut carrots into pieces slightly smaller than the potato cubes.
Simmer ribs until almost tender to your liking, 45-60 minutes or more depending on the ribs and your stovetop.
Increase the heat, add carrots and wait for the water to boil again. Add potatoes and once the water starts boiling, lower heat to a simmer. Cover and simmer until all ingredients are tender to your liking, about 10 more minutes.
Increase the heat and let the soup start to boil, add tomato (if using) and cook for about a minute and then add fish sauce. Adjust seasoning to taste. Turn off the heat, add a lot of cilantro and transfer to serving bowls, sprinkle with black pepper.