Prep the fish: Pat fish dry and cut into strips.
Season lightly with salt and a pinch of chili powder. Keep chilled while you prep the rest.
Make the slaw: In a bowl, toss cabbage, cilantro, jalapeño (if using), lime juice, olive oil, and a pinch of salt. Taste and adjust acid and salt.
Set aside to soften slightly.
Blend the avocado crema: Combine avocado, sour cream or yogurt, lime juice, garlic, cilantro, and a pinch of salt in a blender. Add water 1 tablespoon at a time until it’s smooth and spoonable. Taste for lime and salt.
Heat the oil: In a large, heavy skillet, heat 1/2–1 inch of oil to about 350–365°F (medium-high).
If you don’t have a thermometer, a drip of batter should sizzle and float right away.
Mix the batter: Whisk flour, cornstarch, baking powder, salt, chili powder, paprika, and garlic powder. Whisk in cold beer or sparkling water until smooth and thick like pancake batter. Don’t overmix; a few small lumps are fine.
Batter the fish: Working in batches, dip fish strips into the batter, letting excess drip off.
Place gently into hot oil.
Fry until golden: Cook 2–3 minutes per side, until deep golden and crisp. Transfer to a wire rack or paper towels. Sprinkle with a pinch of salt while hot.
Warm the tortillas: Heat tortillas in a dry skillet until pliable, or wrap in a damp towel and warm in the microwave.
Keep them covered.
Assemble: Spread avocado crema on a warm tortilla, add a few pieces of crispy fish, top with slaw, and finish with pickled onions or a squeeze of lime. Serve right away.