Remove any skin, bones and tough membrane from the fish and dice into evenly-sized pieces, roughly 1 - 1.5in (2.5 - 3cm). Place the fish in a bowl and add the lime and lemon juices. Stir gently so the fish is all coated and press down so they are largely under the liquid. Refrigerate for around 20 minutes to marinade as you prepare other ingredients.
Thinly slice the red onion and place in a small bowl with iced water - this helps reduce the sharpness. Finely chop the chili and cilantro and set aside. Peel the sweet potato and cut into semi-thick rounds. Divide them between two plates or shallow bowls.
After the fish has rested, drain the onion from the iced water and add most of the onion (keep a little for garnish), cilantro, chili and salt to the bowl with the fish and mix. Divide the fish between the two bowls/plates and drizzle over some of the lime juice mixture. Garnish the fish with the remaining onion. Add some of the corn and maiz chulpe to the side of each plate/bowl and serve.
Video
Notes
Peruvian limes used for ceviche are a little different from what you typically get elsewhere. If you can find the small key limes, these are pretty close, in which case use all key lime juice and no lemon (just increase the amount of lime so same overall volume). If not, then a mixture of lime and lemon if usually closer. This typically uses the giant pale Peruvian corn but it can be hard to find elsewhere - if unavailable, use what you have. Frozen, defrosted corn works well as an alternative.