Try brining and "carry over cooking" to make perfect fish.
Brining works really well with tender white fish and salmon. "Prep a 5 percent salt solution," says Cimarusti. "Think weight, not volume: For a thousand grams of water, add 50 grams of salt." Once you have the brine ready, fillet the fish and drop it in. Leave it in the fridge for an hour, and then take out the fish and let it sit in your fridge, open-air, on a pan without a cover. Six to eight hours later, Cimarusti suggests, you should grill or roast it, without needing to add salt. "It comes out much more moist and flaky," he says, "and is seasoned all the way through."
If you're pan-frying or grilling fish, don't leave it on the heat until it's completely cooked or it'll be overdone. As with many other foods, fish continues to cook for several minutes after you take it off the heat (known as "carry over cooking"). "Find that sweet spot when it's just nearly done," says Cimarusti, who recommends using either a digital thermometer or any ordinary $2 cake tester to get it right. For a piece of striped bass that's an inch to an inch-and-a-half thick, for example, you can grill both sides, stick a cake tester in it, and, if it's just barely warm, pull the fish off and let it sit for three minutes. "It will be just perfect," says Cimarusti. This method also works for halibut, black bass, black cod, and most flaky white fish. "You want it around 105–110 degrees," he says. "Except for very dense fish, like monkfish, which is almost like lobster. Salmon should be right around 120 degrees."