Type-check the crap out of everything
-
Dict is evil
-
State is evil, all forms of it, avoid it like the plague
-
Functional over object-oriented, using then latter sparingly
-
Split and organize code by functionality rather than type
-
Treat all code you write as if you were writing a library to be consumed by millions
-
Use nested exceptions for error handling