Retire as escamas do bacalhau.
Corte-o em postas e mergulhe-o em água gelada para dessalgar. Durante o dia, troque esta água por outra gelada por mais 4 vezes para eliminar o excesso de sal.
Se preferir utilize o lombo de bacalhau já dessalgado.
Cozinhe as batatas ainda com casca juntamente com o bacalhau (não muito cozida - consistência firme).
Depois de cozidas, retire a casca das batatas e corte-as em rodelas grossas (1cm de espessura).
Desosse o bacalhau separando as postas. Reserve.
Faça um molho com 3 cebolas, o pimentão, o coentro, o tomate e o alho, todos picados, refogando-os em aproximadamente 100 ml de azeite. Adicione sal a gosto (não muito, pois o bacalhau já salga o prato)
Depois de cozido, bata este molho no liquidificador até a consistência de creme.
Forre um refratário com azeite e disponha as batatas cortadas uma ao lado da outra até preencher todo o fundo do refratário.
Coloque o bacalhau por cima e cubra com metade do molho.
Coloque algumas azeitonas verdes por cima.
Faça quantas camadas couber.
Na última camada coloque as azeitonas pretas, 1 cebola cortada em rodelas finas e o requeijão misturado previamente com o creme de leite (com o soro).
Regue com o restante do azeite.
Coloque o queijo parmesão por cima e cubra com papel alumínio.
Leve ao forno 280ºC por 30 minutos.
Após, retire o papel alumínio para gratinar.
Sirva com arroz branco.