Place shallots, lemongrass, galangal, lime leaves, and Bird’s Eye Chilis in a plastic bag and seal the top. Use a rolling pin or meat tenderizer to pound each of these ingredients just until they have broken open slightly. They do not need to be smashed into a paste, but breaking them open will help them to release more flavor. (Note: You can also just place them on a cutting board and skip the bag, but I find this keeps the process fast and minimizes mess.)
Heat a large Dutch oven, saucepan, or wok over medium heat. Add all of the smashed aromatics to the heated pan and sauté for 2 to 3 minutes until fragrant.
Pour stock over aromatics and bring to a simmer. Simmer for 5 minutes.
Add mushrooms and Thai chili paste and continue cooking until mushrooms are tender, 2 to 3 minutes.
Stir in shrimp, fish sauce, and coconut milk (if using). Simmer just until shrimp is cooked through, 2 to 4 minutes, depending on size.
Remove pan from heat and stir in lime juice. Taste and adjust if needed, adding more fish sauce for salty flavor and / or more lime juice for more sour flavor.
Top soup with cilantro leaves and serve with Jasmine rice on the side.
Note: The aromatics in Tom Yum Goong (shallots, lemongrass, galangal, lime leaves, and Bird’s Eye Chilis) are not meant to be eaten which is why you want to keep them in larger pieces so they are easy to spot. I like to leave them in the soup when I serve it because they add so much fragrance. If serving this to guests, be sure to mention that they are not meant to be consumed.