Hacker News new | ask | show | jobs
by castle-bravo 3009 days ago
Canadian engineering culture is a little different from American engineering culture. In Canada, you can't legally call yourself an engineer unless you are certified as such by a professional association. All students graduating from engineering programs are given an "Iron Ring" (stainless steel) to wear on the little finger of the working hand. The steel in the ring symbolizes the steel in a fallen bridge. The message is simple: if you fuck up, people can die. This extends to purely financial matters too; if you waste 2M of capital, you've wasted the productivity of an average person's life (average in Canada and the US).

If you lie to people to get your hands on their money and misrepresent your work, you shouldn't be lionized as some kind of entrepreneuring maverick; you're a danger to the public interest. This is worse than making a calculation error that results in harm; it is willful and deliberate harm at the scale of a mass murder.

3 comments

Definitely a pet peeve that so many software developers call themselves software engineers. I went to engineering school in Canada, and no longer wear my ring because the work I do is not engineering, it's development.

I'm not trying to knock the software development profession, I have a lot of respect for and derive a lot of joy from the work. There's just a difference between "As a member of this association of professionals, I declare this a safe and appropriate design, and am personally and professionally liable for failures in this design" and "I have push access to master and can deploy code to prod".

On the other side, do we want to treat every project like a medical device?

In the vast majority of sane engineering orgs there isn’t gross negligence and developers are very cautious (hence the popular evil PM / incompetent manager trope) to the point that they barely move at all.

>On the other side, do we want to treat every project like a medical device?

No, but is most software work really engineering? Personally, and atthe risk of completely going off topic and starting a debate which has little purpose, I don't think so. I don't consider duct taping together various frameworks and third party libs to create yet-another-CRUD-app "engineering".

From a meta level, engineering is the study of how best to make things. The high cost of construction and the mature state of the relevant physics give civil and structural engineering their highly mathematical, model-driven, upfront-design-heavy form.

Software development has different constraints. An edit -> compile -> test cycle is free, but formal verification of code is obscure and unwieldy. Consequently, our best practices are more iterative and empirical than front-loaded and model-driven. But we do have some. (Not denying that software engineering is much less mature than other forms).

A team that's doing good high-cohesion low-coupling components, fault tolerant design, unit testing, integration testing, version control, code review, capacity planning, telemetry, staging, canaries, blue/green or incremental rollout, feature flags, etc. is acting in accordance with the body of knowledge called "software engineering" even if they're doing it for a boring CRUD app. Someone with a big pile of spaghetti code on his laptop is probably not doing software engineering, even if he's cracked P=NP. (He might be doing computer science - have you seen how researchers code?)

In all fairness, a lot of other disciplines of engineering could be described the same way. My SO for instance is a civil engineer at a construction company. The company works on multi million dollar projects building airports, hotels, schools, etc. These are massive projects meant to service thousands of individuals and if they make a mistake people can die. She describes her job as "a whole lot of babysitting adults (sub-contractors), and duct taping bad designs to worse material".

Are there safety concerns that a lot of engineering doesn't have? Sure. But it goes both ways. In her field of engineering there are limited impactees and mistakes while potentially fatal have minimum monetary value. I can fuck up and cost my company millions in an instant. Or expose millions of user's personal information. Different risks, and I'd still probably take the a stolen identity over death, but at the end of the day it's a similar job.

A civil engineer is responsible for every tolerance, specification, and design they put their name on. I imagine they would be verifying those before they sign off. She also has to have a lot of knowledge in math and certain sciences to do that job I'd consider that engineering.
This is a late reply but basically, you're completely wrong. There are certain aspects that someone on site has to be sign off on, but no the majority of engineers on site don't have to be responsible for really anything other than verifying they delivered what they promised. There are inspections (generally by the state) that verify the safety of a finished project. If something goes wrong because of sub par material or a design from an architect that ended up not being sound that's not on the engineer who signed off. And as far as Math and Science skills it's actually pretty similar to CS people where you learn a lot of stuff that you never use, or are expected to. Some guy did a basic derivative for something or other on their site, a week back, and everyone freaked out they were so impressed. These aren't the day laborers. There are all guys who've been in construction for years, Superintendents, field and project engineers, etc.
I'm glad that software professionals have a strong enough negotiating position to avoid having liability dumped onto us like that.

Capital reaps the rewards, capital should bear the risks. If capital wants to use standards and certifications to help select the least risky staff, great, but getting the law amended to transfer your risks onto your underlings is just evil. If it happens to us, I highly doubt it's going to come with any commensurate increase in exposure to upside...

People certainly shouldn’t call themselves developers if they haven’t done any real estate deals.
and they shouldn't call themselves engineers if they've never operated a train.
except that 2M isn't wasted, it funds the productivity of an average person's life which they then use to pay taxes, buy food, and pay back their student loans
Some may say that it's a waste if the value of the output is less than the input.
if by output you mean return on investment then yes, but the input isn't wasted, it just gets transferred through outputs to other inputs
The US has a similar ceremony. However, the engineers are nominated.