I find that white, lean fish work best for ceviche. I've made it with bluefish and salmon before but I don't like it so much; you might have a different opinion. My standard ceviche fish is Pacific rockfish or lingcod that's been pre-frozen. Any sort of snapper, grouper, black seabass, porgy, sea trout, white seabass or yellowtail will work, as will pre-frozen freshwater fish like walleye or perch.
1poundpre-frozen lingcod,rockfish or other lean, white fish
Salt and black pepper
1/2red onion,sliced root to tip
2Roma or other paste tomatoes,seeded
1ear of corn,kernels sliced off
1habanero or rocoto chile pepper,or more to taste
Slice the fish into small, bite-sized pieces. Cut the tomatoes into pieces the same size as the fish and set them aside for later. Zest 1 lime, 1 lemon and the grapefruit and grate them fine; I use a microplane grater to do this. Mince the habanero fine. Juice all the citrus. Add all the ingredients except for the tomatoes and the cilantro to a bowl or plastic container with a lid and refrigerate for 30 minutes to 2 hours.
Add the tomatoes and cilantro, mix well and serve cold with chips.