- Explanatory variables
- Tests (one assert statement per test)
- Write good comments
- Remove dead code (commented out code)
- all import statements at the top of file
- Error handling → throw exceptions and write own exceptions if necessary and add context
- DRY - Don’t repeat your self → write functions
- Functions should do one thing
- Descriptive function names (intuitive)
- Use parameter types and return types in functions and classes (python)
- Not more than 3(!) function parameters
- Add docstrings to functions and classes