Preheat oven to 400°F (200°C).
Boil potatoes until tender, about 15 minutes.
Mash potatoes with butter and milk.
Poach fish in milk for 8 minutes.
Remove fish, reserve poaching liquid.
Flake fish into bite-sized pieces.
Sauté onion until soft, 5 minutes.
Add flour, cook for 2 minutes.
Gradually add reserved milk, whisking constantly.
Add fish, peas, and eggs.
Season with salt and pepper.
Transfer to baking dish.
Top with mashed potatoes.
Bake for 25-30 minutes until golden.