Dry the fish thoroughly with a paper towel. Cut the fish into several large pieces.
(optional) Peel and devein shrimp. Save the shrimp heads for later use.
Heat butter in a medium sized nonstick skillet over medium heat until melted. Add ginger. Stir a few times until fragrant. Add white onion. Stir and cook until pale brown and slightly charred, about 8 minutes.
Turn to low heat and add curry powder. Stir and cook until curry powder coats onion evenly and smells good, 1 to 2 minutes.
Add coconut milk, 1/2 cup water, and the soy sauce and stir a few times. Add green beans, mushrooms, carrot, and shrimp heads (if using) (*see footnote 2). Cover and cook over medium high heat until boiling. Turn to lowest heat and simmer until vegetables turn soft, about 10 minutes.
Add oyster sauce and mix well. Taste the curry and add salt to taste (I used 1/2 teaspoon).
Place fish and shrimp (if using) on top. Cover and continue to simmer until the seafood is cooked through, 6 to 8 minutes. Do not over cook the fish and shrimp.
Serve warm with steamed rice or naan bread.
Notes
(1) I saved the shrimp heads so I could use them to make a broth base for the curry. You can skip the shrimp and replace the shrimp heads with a cube of stock or broth into the curry later on.
(2) If you don't use shrimp heads in this recipe, you can add a stock cube here, or replace the 1/2 cup water with chicken broth.