Where do you draw the line on being an engineer? Seems like a good topic for a discussion.
One that designs based on actual data and tolerances.
What the overwhelming majority of programmers do has nothing to do with engineering, and more to do with jerry building.
As someone that works under the title of software engineer, I agree with this, except with the jerry building part. There is jerry building and there is jerry building, one on actual data and tolerance, one done as a craft, and one where people throw shit at the wall and package whatever sticks.
If you apply the scientific method to your work, have clear tolerances and work on actual data, or data inferred by some type of model, then shit, a lot of software jerry building then also accounts as engineering (and there is lot of that.)
But it is also true a lot of what is done in software is not engineering, not even craft (but shit flinging.) The field of software is still too young to clearly define what is engineering and what is craft (and far more dynamic than most fields that have come before it.)