Prepare the citrusy "marinade" first:
Squeeze the lemon, lime and kaffir lime in a mixing bowl.
Cut the ginger in thin slices. Add to the bowl.
Cut the lemongrass lengthwise and then each in half. Add to the bowl.
Put the bowl in the fridge and set aside, so the citruses will have time to soak the thai flavours in! (I didn't mention any passive time as it depends on how much time you have. Ideally, 30 min to start is great).
Plan about 15 minutes of last minutes prep before you want to serve the ceviche.
Take your citrus bowl out and remove the ginger and lemongrass.
You can keep the lemongrass for decoration!
Cut the fish in cubes and add them to the citrus juice. Mix well.
Chop the shallots very finely. Add to the bowl.
Cut thin slices of the deseeded chili, add them to the bowl.
Add the soy sauce.
Just before serving, add the fresh cilantro if you like, and some crushed peanuts for a crunchy texture.
Last but not least! I had some fresh Thai avocados on hand so I added them last minute too, although that is not part of the initial recipe.