How about when it involves getting the best possible performance out of the given hardware architecture?
Someone who codes up QuickSort is probably, at the time of coding, not making engineering decisions because the decisions inside a QuickSort implementation have largely already been made. This is simply a view on where the dividing line sits between an engineering decision and something else.
To be honest any decent dev is interchangeable between positions in a corporation, its simply better for your career.
I can create whole systems from ground to top, from design through backend and frontend with infrastructure and orchestration. Can i call myself an Engineer then ?..
Legally, I don't know. Personally, if you might be making a lot of engineering decisions then I wouldn't object. I would probably consider a lot of full stack developers to be basically engineers.
A FSD isn't necessarily making engineering decisions though. I can imagine a FSD who is expected to make all elements of a stack work together without having any real control over what composes the stack - maybe doing bugfixing, configuration and integrating new bits on demand. That wouldn't be engineering to me because there isn't a lot of control over high-level decisions.
I’m curious which companies you mean. Everywhere that I’ve seen, most people who write code are called engineers.
TBH, it just seems like “developer” or “programmer” has been mostly supplanted by “engineer” by way of title inflation, starting with big tech companies and valley-style startups.
I think it's fine, really, it's not really hurting anyone.
It is hurting everyone at the end of delivery chain.
Until people start doing returns in mass for software that breaks fast and fails to deliver, this won't change most likely.
As a teacher of mine used to say, feels like buying shoes that explode when tied the wrong way.
'Engineer' can mean a couple of different things depending on culture & context, including I think a 'person who works on engines'. However, professional engineers are technical decision makers.
A good engineer will think through a project from start to finish, anticipate all the decisions that will come up, and make them. Not obvious trivial decisions like 'does the bolt need tightening' but the big picture ones like 'is this standard acceptable?', 'is this trade off acceptable?'.
Big companies separate engineering from programming. Small companies will not have the resources, so the roles will be combined. Adding a dependency, changing an API and choosing major data structures are all engineering decisions. Deciding how comprehensive the testing framework needs to be. Maybe some algorithm choices.
Typing Python code is not engineering. Implementing some well established algorithm like Quicksort is not engineering. Doing something using an API because someone told you to is not engineering. Writing a unit testing is probably not engineering. Move-fast-and-break-things is not engineering, although it does seem to work very well.
There is overlap. I don't see why someone who is making big picture decisions shouldn't call themselves an engineer. Being regulated and certified is only mandatory if the government says it is.