He seems to be describing a scientist more than an engineer. Software engineering is much more about working on large codebases with many people over long timeframes without the entire thing collapsing under its own weight. Often you have to pick simplicity & durability over performance.
What is your definition of a ‘software engineer’?
“Software engineering is what happens to programming when you add time and other programmers.”
By extension, a software engineer is somebody who works on a large codebase with many others over several years.
This definition sounds a bit circular to me. Software engineering is a skillset, and it allows you to work on large codebases with many others over several years. But the latter is a proxy for the former skillset, because if I asked you, “Why is not Joe here a software engineer?” you’d say, “Because he’s not working on a large codebase with many others over several years.”
“But why doesn’t he have a job where he does that, assuming he wants to?”
“He doesn’t have the necessary skills.”
“What are those skills called?”
I don’t think it’s circular. I defined Software Engineering. You then created a fake conversation & put words in my mouth…
I could try to list skills that help somebody to be an effective software engineer if you want but that’s not what you asked for initially.
A structural engineer isn’t just someone that works on buildings with other people. It’s someone with a particular set of qualifications that has passed a particular set of professional exams and is certified to be one.
I do not think that your definition of software engineering is good and I don’t think your definition of software engineer fits in at all with how engineering works in general.
Software engineering has nothing to do with large codebases or large numbers of people.
What’s your definition of software engineering?
[The regulations around who can call themselves an engineer vary across countries. They’re different in the US & Canada & probably in NZ too.]