Ethical Software Company

As an ethical software company Cloudamite will write you any software that is not against laws and good manners.

Yeah, Right.

If it was that easy. In modern society software is used as a part of almost any kind of human interaction, like paying debt at a bank, finding a lover using a dating app or destroying lives of enemy soldiers with a remote-controlled flying robot that kills with the click of a mouse button. Software for all these three use cases may have been developed according to local laws. The ”good manners” part gets painfully tricky if one needs to develop and design software with a good conscience.

Humans are really good at inventing new uses for old things. This is a superior ability. If it were not there we would still be at stone age, opening coconuts with hammers made of stone and there would be no other uses for stone ”because stone hammer was strictly designed for coconut-breaking only”. Thank you, the creative rascal, who noticed that there is a special kind of stone called silicon that, when etched correctly, will start to count, calculate and even think to some extent. We’re kind of still living in the stone age, only now our stones can not only break coconuts but also calculate debts, match lonely souls and calculate missile trajectories.

A hammer, be it stone or steel, is really good at constructing things. It is also really good for breaking things. The hammersmith can hardly be held accountable if his hammer is used to break things instead of building new. At least we can believe that the hammersmith constructed her tools in good faith, thinking they will be mostly used for building new and good things. Software too is usually developed with with some use case in mind. A typical software product is endlessly more complex than a hammer and its flexibility to serve new purposes may be even more difficult to predict. Some new uses simply may not occur to the developer, like in this https://www.nature.com/articles/s42256-022-00465-9 case where an AI system designed for finding new medicines turned out to be really effective for finding new chemical weapons too. Just set system parameters upside down and it does the work it was designed for. Or how was it?

The same questions should be in mind when developing any software, not only software for a flying killer robot. Good examples are simple chat applications, like Telegram that is heavily used in the battlefront between Ukraine and Russia right now, in both sides, for good and evil. Brothers Durov wanted to have a chat a application. With the experience they had with VKontakte they may have made design choices. Such as that you may be able to enable anonymous communication. It might help the oppressed opposition to voice their opinion if there is no other medium available. It might help spreading the truth, lies, propaganda and news anonymously, for good purposes or evil. You might have enabled measures to make the application resistant against censorship. It might make it more difficult to weed out hate speech and blatant lies, for good purposes and evil. It might also make it more difficult for frustrated dictators to remove content not suitable for their agenda. And this discussion is still only about a humble chat application that was designed with some clear use cases in mind. In the end, it is the user of the application or the hammer that chooses to use the tools to do good.

Software is a more complex thing than a hammer and humans invent new use cases. At least software should be designed so that it does not immediately enable the most sinister use cases. Modern software should be designed to include privacy protections, give the user control over data concerning her and not store data that is not absolutely required for the use case. The pesky GDPR that makes the life of a software engineer slightly more miserable is there for a really good reason and the existence of lunatic dictators is only one reason to write all software compliant to GDPR. For all data collected of human beings, the most evilish purposes of using the data for are yet to be invented. Software related work in ethical sense is not only algorithm design but also decisions about what data to collect, what data to store and how to control its accessibility and removal when not needed anymore.

In Cloudamite we keep these things in mind and try to design things we don’t need to regret having designed. It is still only the conscience of our fellow humans that we love and trust that will finally protect us from mis-use of any tools, hammers and applications.

Looking at the history, it seems that the worst stupidities against human well-being have been done when ”only following the orders” or when ”I was doing the right thing”. In these cases software engineering doesn’t help much. The thing is to listen to your conscience and speak out truthfully, letting others know what you think. In there, software and software engineering actually has a (minor) role. And we very much hope that in future conflicts, right-minded people will use any tools available for uses that will let them sleep well at night. Including software tools.