I've always hated the term 'Software Engineer'. It devalues the term 'engineer' and it misrepresents what software creators do.
When Engineers build a new kind of bridge for the first time they have all kinds of problems; resulting in time and cost overruns. New kinds of bridges requires a lot of creative problem solving. However, once they've solved the problems the next similar bridge is quick and cheap and safe.
Software is a new bridge every fucking time, because copies cost nothing.
Know this: #programming is not 'engineering'. It could be, but that would require everyone to use a formal-body recognized set of programming languages, APIs, and software frameworks. Engineers would express creativity via the easiest and quickest way to solve problems using only those tools.
That's how real engineers do it. They are licensed and bonded. Insured. You don't see "THE BRIDGE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED…" on signs before you cross a river.
Is it possible to perform the act of #programming as a true engineering practice? Possibly. It has been tried for certain 'unreliability would be fatal' cases. https://www.fastcompany.com/28121/they-write-right-stuff
Here's the thing: actually reliable software is really fucking expensive. Maybe a hundred times more expensive than how we do it. And the way we do it is wasteful as hell!
Most of what we currently call 'Software Engineering' actually consists of reducing that waste, within the realities of software as a craft.
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!