We've covered rules of feature engineering with domain knowledge and in general, there is one more thing worth noting: document how each feature is generated. It sounds trivial, but often we just forget how a feature is obtained or created. We usually need to go back to this stage after some fail trials in the model training stage and attempt to create more features with the hope of performance improvement. We have to be clear of what and how features are generated, in order to remove those that do not quite work out and to add new ones with potential.