Start by placing the shrimp in the freezer for 15 minutes to firm them up, making peeling easier and cleaner.
Peel and devein the shrimp carefully, then chop them into bite-sized pieces and set aside.
Juice the fresh limes using a citrus press or by hand, collecting enough to cover all the shrimp in a bowl.
Pour the lime juice over the chopped shrimp in a mixing bowl, ensuring they are fully submerged. Toss gently to coat evenly.
Add the thinly sliced red onion and torn cilantro to the bowl, mixing gently to distribute their vibrant flavors.
Finely chop the serrano peppers, then stir them into the mixture, adjusting the amount depending on how spicy you like it.
Sprinkle a pinch of flaky sea salt over the ceviche, then give everything a gentle stir to enhance the flavors.
Cover the bowl with plastic wrap and refrigerate for 15 to 20 minutes, allowing the flavors to meld and the shrimp to marinate.
If desired, dice some mango or avocado and fold it into the ceviche just before serving for a sweet or creamy touch.
Once marinated and ready, give the ceviche a gentle stir, taste, and adjust the salt or lime juice if needed.
Serve the ceviche chilled in small bowls or glasses, garnished with extra cilantro if desired for a fresh presentation.