- Focus on performance related issues
- Identity potential issues
- Avoid memory leaks
- Cover code with respective unit tests
- Coding styles - follow standards
- Keep classes small
- Keeping methods small
- Write reusable code
- Avoid duplication - copy/paste
- Name methods carefully
- Write comments where appropriate
- Usage of specific assert statements