Optional but recommended (it will aid in crispier tofu): bring one litre of water with 20 grams of salt to the boil. Add the tofu and simmer for ten minutes. Drain and lay the tofu on a tea towel or kitchen roll to air dry.
Heat a wok with a few inches of oil to medium heat and deep fry the tofu until lightly browned and crispy, around 5-10 minutes. Remove to a plate lined with kitchen roll to soak up excess oil.If you're not comfortable deep frying, you can also pan fry the tofu. Tip all but around 2 teaspoons of oil out of the wok into a heatproof dish (once the oil is cool, store it in a lidded container to reuse another time). Return the wok to medium heat and add the garlic and shallots, stir frying for just under a minute until fragrant but not burned (some browning bits are fine).
Add the tomatoes, soy sauce, sugar, black pepper, mushroom seasoning powder, and salt and simmer for a couple of minutes until the tomatoes break down. Add the water and continue to simmer for about 7-8 minutes. The sauce should be thick but still fluid.
Add the fried tofu to the wok and stir it with the tomatoes, or plate the tofu up and plop the sauce over the cubes. Sprinkle with coriander and spring onion to serve.