In una pentola di acqua bollente salata cuocete il merluzzo.
Una volta cotto, scolatelo, togliete la pelle e rompete la polpa con le mani in modo grossolano.
Cuocete in acqua bollente anche le patate, poi pelatele e tagliatele a cubetti di poco più di un centimetro.
In una pentola sciogliete il burro a fiamma dolce e aggiungete la cipolla, facendola ammorbidire per 7-8 minuti, senza farla scurire. Aggiungete la farina e fate cuocere il composto per un paio di minuti mescolando.
Versate lentamente il latte, sempre mescolando e cuocete per 4-5 minuti fino a far addensare la salsa (in sostanza, fate una besciamella con la cipolla). Aggiustate di sale e pepe.
Aggiungete, alla besciamella, il merluzzo e tre quarti delle patate e mescolate vigorosamente, non importa se il merluzzo si disfa, è così che va! Date un’ultima regolata di sale.
Versate il composto in una pirofila leggermente imburrata (20×20 cm o simile), spargete le rimanenti patate sopra, spolverate di Grana Padano e fate gratinare sotto il grill del forno per 20 minuti, finché la superficie diventa bella dorata e croccante.
Togliete dal forno, fate assestare per 5-10 minuti, cospargete di erba cipollina tritata e servite.