Minimize on-chain data
Use libraries
Use ERC1167
Turn on the Solidity optimizer
Use events
Use literal instead of computed values
Avoid to copy arrays in memory
Avoid for-loop over dynamic ranges
Optimize order of variable declaration
Use eth-gas-reporter



