Design
Presentations about Design
Software Design for Persistent Memory Systems
A Young Profession Coping With Ethical Debt
Real-Time Data Analysis and ML for FraudPrevention
Interviews
A Young Profession Coping With Ethical Debt
What is the motivation for your talk?
If you look around our industry the vast majority of people that are working today in our industry, writing code, making decisions that impact users, haven't had an intense ethics course in their life, they haven't taken an ethics course in high school, they haven't taken an ethics course in college. It doesn't mean that they don't know ethics, ethics are pretty innate in human beings. They're not surprises most of the time, but having a rigorous model for understanding whether or not what you're doing is ethical and what the consequences are of those actions is something that is learned. It's not something that is innate, and I can propose a rigorous model for asking yourself questions, not getting answers. There's a playbook for discussing ethics; there's a playbook for contemplating them; there's not a playbook for answering them. Ethics are very open ended. The vast majority of hard ethical questions have two or more non-ethical answers: you don’t choose from right and wrong ethical answers. The question is what your mental model is for making yourself answer those questions instead of just avoiding them and pretend they don't exist.
How do you scope applying ethics to software. I mean, as a developer, what are the boundaries? (Are there boundaries?)
I think that in some respect there are no bounds. But I think that it's pretty easy to frame the discussion. The ethical consequences of software development are those that affect humans. Humans don't consume JavaScript libraries. They don't consume C APIs or Kubernetes clusters. They don't do that, but humans incorporate those things to deliver services to humans. So, the ethical concerns about building a software package that is a library or a framework are really limited in scope in many ways. There are two responsibilities that you have there. One of them is that you need to have the ethical considerations of the consumer of your product, which is a very limited group of people, software developers. This is a great example: you probably don't want to write documentation that disenfranchises a group of developers. That's easy. People don't do it but it's not a complicated ethical question to contemplate. It's like the surface area of what you're building has very limited exposure it's a small relatively small group of people, it doesn't have wide impact on society. How it gets used can. So the second ethical concern there is making sure that you adequately disclose the things that you have contemplated in your software so that the person incorporating it can make good decisions. None of those decisions are on them but you want to enable them to make the right decisions.