When people argue about precise meaning of words they often ignore the fact that words can be polysemantic (in fact, most words are). It's totally fine that the word "engineer" in "civil engineer" and "software engineer" has different meanings.
Meanings of "engineer" according to Merriam-Webster:
1. a member of a military group devoted to engineering work
2. crafty schemer
3. a designer or builder of engines
4. a person who is trained in or follows as a profession a branch of engineering
5. a person who carries through an enterprise by skillful or artful contrivance
6. a person who runs or supervises an engine or an apparatus