Best practices always comes as snippets of advice. Nowadays you are told to be 'functional', 'immutable', 'pure', and 'reactive'. To really understand these buzzwords you need to go back to basics. In this talk, we will strip back these terms to the fundamentals. By understanding what they solve and how they solve it you will be able to make a much more informed choice over which rules to apply to your software and when it is OK to break them. By the end of this talk, you will have discovered best-practices in a more refined light, and leave writing better code than before.