Use only the freshest catfish — live ones that are still jumping and wiggling when you buy them. Ask the fish monger to gut the fish and remove the gills but to leave it in one piece.
When you get home, place the fish in a large pan (a basin is better). Soak the fish in a mixture of salt and vinegar for about 20 minutes to get rid of the sliminess. My father and his father before him used wood ash but we don’t cook with wood in the suburb so we don’t have a steady supply of wood ash within reach. Hence, the salt and vinegar solution.
Once you’ve cleaned the fish, cut it into fur or five portions. Heat enough cooking oil in a fryer or a wok so that the fish pieces are totally submerged in oil. You can do this in batches so don’t worry if your largest fryer won’t allow you to cook all the pieces at the same time. Make sure that the oil is very, very hot — smoking hot — before you start frying. There will be spatters. The oil will pop once the fatty skin of the catfish touches it. Cover the pan loosely to allow steam to escape while, at the same time, preventing oil spatters from burning your arms. I use a screen cover for this job (note to self: take a photo).
Cook the fish until the outside is crisp. Drain well.
Pour off the oil from the pan, leaving about a tablespoonful or so. Saute half a head of minced garlic and a thinly sliced onion. Pour in 1/4 cup of vinegar. Let boil. Add some peppercorns and a bay leaf. Return the fried catfish to the pan. Pour in about 2 cups of coconut milk. Season with salt. Boil gently, uncovered, for about 10 minutes, turning the fish over halfway through. After 10 minutes the liquid will be reduced and the sauce will be a little thicker. Don’t worry if the sauce still appears too thin at this point. It will thicken as it cools.
Use kitchen tongs to transfer the fish pieces to a serving platter. Pour the sauce over and around them. Chop some cilantro (coriander leaves) and sprinkle on the fish before serving.