What hasn't worked: thinking in terms of monads / applicatives / functors / other FP / category theory concepts.
I know what those are, but this is just not how I see the world, and forcing myself to think about code in those terms just isn't productive.
What worked: using FP composition / organization / abstraction patterns that often involve those same FP concepts but without cargo culting.
Non-hardcore FP has been very rewarding to me. With Scala, mixing FP and OOP patterns is a great way to get the best of both worlds.