How to create custom shader?

Bumping on this too, would really love to see a clear workflow or the appropriate way on how to create custom shader work on Unreal Engine.
The least I could do is to replicate what did on FluidSurface, any notes you could share with us ?