What's your atomic bomb?

Inspired by Software that helps, except I disagree with Bertil's implicit assertion that all software is helpful in the long run :) The development of the atomic bomb is the classic example of how diffusion of responsibility through a team and/or management structure helps people rationalize working on all kinds of stuff. Likely none of us have reached the ethical depths plumbed by Oppenheimer and his team, but what aren't you proud of?

I worked in advertising for a few years, making it easier to waste paper and annoy people worldwide with those mailers from car dealerships you throw away without looking at. I'm never working in advertising again.

Did you find this post useful? Show some love!
DISCUSSION (41)

I saw @calebthompson give a talk about working on cellular triangulation technology that can help the military track and kill people.

It was never pitched as such, the developers were just given exciting math problems to solve, but that was its ultimate purpose.

I don’t have much in my own past to offer. But we will need to avoid dark temptations in the future of dev.to. Many platforms turn awful over time and prey on the users. Trying to ensure that doesn’t happen here.

Watched a video yesterday on new research that creates photo realistic videos. It's really scary how if this is perfected, it could end the usage of videos as evidence.

It was never pitched as such, the developers were just given exciting math problems to solve, but that was its ultimate purpose.

This reminded me of an article (unfortunately in Italian) that I read yesterday about the new chief of Mossad that created an operation in which the various actors involved (killers included) didn't know they were part of a Mossad operation.

Sell out early and sell out often. Urgency kills ethics every time.

Developed a management system for a client way back. Was recently asked to maintain/add features. I didn't write tests back then, so yeah, every code change is a bomb waiting to explode.

The silly thing is that even knowing how things can get horribly wrong, I just can't find the discipline to write tests for legacy code. I strictly subscribe to TDD for new projects though.

I'd say as an industry we collectively keep making the rich richer. I think there is something inherently wrong with how programmers buy into and support the system that basically makes anything an individual programmer does on their own a wash in the grand scheme of things.

A lot of programmers like to pretend that there are no politics or power hierarchies involved in the products we build, and once they are built that we are no longer responsible for how they get used or by whom.

Yup. A friend recently put it very eloquently. I forget exactly what he said but it was along the same lines. We build software to maintain power balances so that the powerful can continue playing power games. This is what sucks I think. Software can enable, empower, and augment human capabilities but instead we squander it all on childish chimp hierarchies and games.

Ben Halpern DEV.TO FOUNDER

Hey there, we see you aren't signed in. (Yes you, the reader. This is a fake comment.)

Please consider creating an account on dev.to. It literally takes a few seconds and we'd appreciate the support so much. ❤️

Plus, no fake comments when you're signed in. 🙃

Spent two years working on a web platform for multi-level marketing companies. MLMs are, by and large, get-rich-quick schemes that sell McGuffins--the product doesn't matter as long as the sales rep can claim it will cure you of psoriasis, loneliness, poverty, ennui, or unattractiveness. They're very popular around here.

Ultimately I rationalized that not all of our clients were that bad. And the company was chock-full of really brilliant, wonderful people. And hey, it wasn't a cigarette factory. But I was always uncomfortable with what our clients were doing.

Now I work on products that help hospitals save money, hopefully by providing more effective care to patients. I'm sure the company has opportunities to compromise ethically, but for the most part we try to leave those decisions to our clients. It's not a perfect job but I feel better about myself now that I work in a field with clear ethical standards, like the Hippocratic oath.

This reminds me of some of my earlier work that I forgot about when first trying to answer the question.

I ultimately didn’t take the work, but I remember being asked to help with MLM-type stuff when I was doing web dev consulting in college.

The whole thing was just so weird. I’ve never felt comfortable blindly implementing some scheme.

I used to use over-the-counter maximum strength placebo.
But I found that wasn't helping my psoriasis, loneliness, poverty, ennui, and unattractiveness.
Now I'm using prescription placebo. Sure, it costs more, but its worth it!
(I kid! I kid!)

I wrote content generation software that could be used by unscrupulous internet marketing types to spam blogs and forums for SEO purposes. I pulled the plug on it because I didn't like how it was being used.

In my opinion, the software behind any social media (if not handled carefully) would be an atomic bomb!

It starts off as something very useful that connects people globally but then explodes & spreads like a wildfire, i.e: The recent case of Facebook's Cambridge Analytica

Based on Facebook’s entire history, which showed pretty consistent contempt for the users, Cambridge Analytica hardly seems like a coincidence or accident. It’s exactly what they built towards.

I always felt that it was just me who thought Mark Zuckerberg must be as haughty as depicted in The Social Network but from your statement, I believe I'm not the only one :D

I think every developer should push back on working on any project without also getting a high-level understanding of what the thing they're building will be used for. Don't just gleefully hop into the JIRA board and start completing tickets. Ask why you're doing what you're doing, and don't be satisfied until you uncover the truth.

You are more than the sum of the JIRA tickets you complete. You are not some replaceable cog in someone else's machine. Find teams that appreciate this.

Also, save a very high percentage of your earnings so you have less of a financial reason to take on projects where the connection between the tasks you are doing and the business outcome isn't clear.

Always operate a few levels higher than expected, and eventually you will be treated as such.

I used to write software that enabled telecommunications companies to be CALEA compliant, i.e. allowed them to gather call records, voicemails, IP addresses, cell tower records, and text message records from mobile subscribers. While there were many cases where the usage of this software was valid, I believe it was possible for authorized parties and law enforcement to misuse the software for personal uses.

Additionally, I have installed deep packet inspection devices to ISP edge routers for subscriber traffic analysis, though those devices were really just used to see how much of a provider's traffic was being used to watch porn (it's a lot) and were not geared towards analyzing any particular user's activities.

I've had several ideas over the years which I felt pretty certain would get me rich if pursued, but would ultimately be a blight upon the world. These were from the darker parts of my mind. Out of principle, I never implemented any of those ideas. I didn't even let them leave the confines of my brainpan for fear that someone else might. Fortunately I have forgotten most of them by now.

For work that I've actually done over the years, I can't point to anything that makes me feel like a destroyer of worlds. (I certainly can point to some horrendously bad code, but that is different.) I make apps/systems for businesses. So far they have been made in good faith, to make everyone's lives easier. Sometimes they are used in ways which I dislike. Mostly that is organizational unhealthiness rather than maliciousness.

I would like my work to have a positive impact, of course. But at the end of the day, I am a tool-maker. Tools are not inherently positive or negative, until they make it into someone's hands. So for me, the far more important consideration is the whether the organization itself is making a positive impact.

I currently write UI for a TV provider. It sometimes feels like our ultimate goal is to waste the more time and money as possible for the end-user.

our ultimate goal is to waste the more time and money as possible for the end-user

Can confirm it feels that way from the user side of things.

How is this? This can’t possibly make anyone happy about their work. Does anyone come into the office excited about today’s work?

Well, I'll speak for my colleague, but overall:
Here's the thing, we like UI/UX development and we're good at it. Compare to web, TV has interesting challenges and unique features. In the end, we ship very nice UI, that users should like to use.
But, that's still true that TV stay a time waster.

ps: but adding the nth feature to try to catch-up with Netflix hegemony, is sad at best.

Ah okay, I was thinking about bleaker elements of TV technical development. Your part of things seems like decent or neutral overall work and it’s probably best that it’s done by people with care for the experience.

The atomic bomb allowed for the end of a war with less lives lost than otherwise. Had there been no atomic bomb the US would've invaded Japan leading to much much more destruction.

Since then wars have been on a much smaller scale arguably because of nuclear weapons.

You can maybe make that argument for Hiroshima, although it was far from settled even without the benefit of historical hindsight: Dwight Eisenhower himself commented in 1945 that "the Japanese were ready to surrender and it wasn’t necessary to hit them with that awful thing". And there's no excuse whatsoever for Nagasaki. But regardless, the real or imagined necessity of a "necessary evil" does not actually make it less evil.

"If the military had its way, we would have fought until all 80 million Japanese were dead. Only the atomic bomb saved me. Not me alone, but many Japanese, ironically speaking, were saved by the atomic bomb." nytimes.com/1983/08/10/world/augus...

Anyways, still an interesting question to ask and something software engineers should be aware of.

My first professional tech job was writing ad hoc queries, uploading data, and maintaining software for a company that handled foreclosure claims on behalf of national bank chains.

Basically, banks cashing out on insurance from FNMA, FHLMC, and FHA on loans signed before the crash that, to an unknown extent, may have been predatory.

In my case, working in a project payed with public money and knowing that It would be thown away in a year. It wasn't my fault but we all knew that we were running a project with no future due to political corruption

My first dev job, nearly two years ago, was for a little french online payment provider. Basically, and even if that was not the part that was proudly displayed on the "customer" part of the website, the company was making money on payment transaction thanks to internet gambling, fortune telling sms and money laundering... great !
Hopefully I was a total beginner (still am, a little) with no guidance so my work there was never used, I left this job after only 7 month.

As a new developer I added third-party DRM to a B2B client program, despite personal reservations about DRM I had at the time. It ended up causing some issues, either due to its requirement to phone home, or due to the way the DRM program modified the distributed binaries. Management eventually decided that it was better to distribute this program sans-DRM for free as a way to generate demand for a paid data service we provided.

I once worked on a "modernization" program that turned out to be anything but modern. Was it more modern than what the customer had? Sure, but we were using an 8 year old release of Qt, a C++ language standard from when I was in college, and a version of CentOS that reached end of life support 5 months after the project was completed. It's on my resume, but I'm not proud of it.

I worked on a book about Brexit, written by one of the UK's most prominent critics of the EU. Ergo, Brexit is partly my fault.

At one of my jobs my main project was doing web-scraping on a bunch of US states' websites, gathering business record data. Which one could argue should have been public domain anyways. The only qualm I had was we were shuttling all our traffic through TOR so the websites wouldn't block our IP address. Surprisingly only a few states at the time actually had APIs for collecting this data.

Overall, I've been lucky enough to dictate terms on who I'll work for and what I'll work on. Notionally, I've had less in the way of flexibility in decision-making since getting married (since consequences of decisions-of-principle effect more than just me). However, that was offset by having built a work-reputation that meant that people haven't typically wanted to ask me to violate my principles and/or I've had "outs" if I needed to demure.

All I can say is, my ability to look myself in the mirror has been greatly aided by not having gotten married early.

My last bombs were decomisioned a few years ago, taken out of production. Nothing fancy just bad code as a junior 😀.

what aren't you proud of?

I wrote a software in Python once, and people still ask me for it because it solved a problem for them. :-(

Classic DEV Post from Jul 13

What Do You Look For in a Mentor?

A discussion around empathetic & helpful tactics for teaching brand new developers

READ POST
Follow @kim_hart to see more of their posts in your feed.
Dian Fay
It's pronounced Diane. At any given point I'm pick-at-least-two from data architect, developer, and ersatz devops. In my spare time I maintain Massive.js, a data mapper for Node.js and PostgreSQL.
Trending on dev.to
Why Your Best Work is Hardest to Finish
#productivity #career #beginners
Lessons I learned from training with special forces that I use in software development
#beginners #career #motivation #dieliving
What Open-source Load Balancer Have You Used Before or Still Using Now?
#opensource #help #discuss
Thoughts on Dashboard Design
#data #dashboard #dataanalysis #productivity
Live coding streams recommendations?
#discuss #livecoding #backend #devops
Explain JavaScript Promises like I am five.
#discuss #explainlikeimfive #javascript
When signing up or logging into an app, do you prefer OAuth (authentication w/social media account) or email sign up/sign in?
#discuss
Why avoid Ruby's for .. in?
#healthydebate #discuss #ruby