Feature engineering expresses information the estimator can't easily recover from the raw columns. An interaction can represent a changing effect, a polynomial expansion can represent curvature, and a rate can put counts on a common basis. You will construct those features while checking their edge cases. A zero denominator needs an explicit policy, especially when the source contains an inconsistent numerator. A useful-looking outcome column can also arrive after the scoring decision, making it leakage rather than a feature. Keep only information available at the decision clock and learn fitted transformations inside the validation pipeline when they estimate anything from data.