- Environment variables are up-to-date
- Infra changes are provisioned
- Business logic compliant
- Required migration scripts added
- Changes are backward compatible
- Breaking changes if any, information is broadcasted to relevant audience
- Self review of the PR is completed
- Internal team / peer review of the PR is completed
- Any dependent changes have been merged and published in downstream modules
- Cache is refreshed wherever applicable
- Formatted
- Linted
- Quality controlled (Sonarlint)
- No test case failing
- Minimum 80% test coverage
- Project documentation (README.md)
- Code documentation
- API documentation
- Developer comments are added to make the code more readable and maintainable
- // @ToDo developer comments are added for tracking tech debts
- Changes are not duplicated and modular for reusability
- Relevant util functions and helper classes are created for reusability
- Security vulnerability checks
- Project dependencies audit check
- Sensitive information are
- not logged
- not stored
- masked wherever required
- Data encryption wherever applicable
- Malicious data injections prevented
- Non-interdependent asynchronous operations are executed in parallel
- Independent asynchronous operations are executed in the background and not awaited
- Interdependent operations are awaited and in the correct order
- Race conditions are avoided
- Deadlocks are avoided
- Unnecessary network requests are not made in a loop
- Data is fetched from cache wherever applicable
- Database read query request are made to its slave resources
- Application is running in cluster mode if needed