I don’t like the term Software Engineer. Real engineers have licenses and certifications and prescribed educations. No such exists (currently) for software makers. It is still a new craft in our society (it goes back only to the 1950s or so), and we haven’t caught up to how complex and demanding it really is. Anyone can use the term Software Engineer, so it doesn’t have the meaning it could.
The meaning it could — really should — have is the same meaning as for Civil, Electrical, Mechanical or any other real Engineers. It should mean a prescribed area of knowledge and skill for anyone who would be that kind of Engineer. Until software education and the software profession catches up with reality, I continue to resist the term.
People who work with software are sometimes called knowledge workers, but I think that’s also poor terminology. All workers use their own knowledge as well as the business’s knowledge. Some professions require more base knowledge than others, but it is still a continuum. I think it’s a vague way to specify a profession.
I’m fine with computer programmer, actually. Maybe that’s low-brow, but I like it. I’m fine with software designer or software maker (but not software engineer).
Bit wrangler is a fanciful, fun term, although byte wrangler sounds a little more dangerous. You can’t really say you make holes in paper anymore (referring to punch cards or punched paper tape). You can still say that you “arrange magnetic domains in a useful structure.”
I like telling people I train silicon life forms.