In this episode, we're talking about ethics in open source with Coraline Ehmke, software developer, and creator of the Contributor Covenant, as well as the Hippocratic License. Coraline talks about her coding journey, open source, licenses, and how and why it’s important to create an ethical framework for those licenses.
- Mainframe computer
- Byte (magazine)
- C (programming language)
- The Hippocratic License
- Free software movement
- The Open Source Definition
- Open Source Initiative
- Open Source License
- GNU General Public License
- The MIT License
- Universal Declaration of Human Rights
- Contributor Covenant
- Massively multiplayer online role-playing game
[00:00:05] SY: Welcome to the CodeNewbie Podcast where we talk to people on their coding journey in hopes of helping you on yours. I’m your host Saron, and today we’re talking about ethics and open source with Coraline Ehmke, Software Developer and Creator of the Contributor Covenant, as well as the Hippocratic License.
[00:00:22] CE: And they’re not recognizing that open source is something that has changed and grown and evolved over time, and that the people who are writing software in the open today are not the people who are doing it back then.
[00:00:33] SY: Coraline talks about her coding journey, open source, licenses, and how and why it’s important to create an ethical framework for those licenses after this.
[00:00:51] Career Karma helps code newbies with free career coaching to help them learn to code and find a high-paying job in tech in less than a year. Download the Career Karma app to start your 21-day challenge and be one of the over 60,000 people who they’ve helped get started. Visit careerkarma.com/codenewbie.
[00:01:11] Heroku is a platform that enables developers to build, run, and operate applications entirely in the cloud. It streamlines development, allowing you to focus on your code, not your backend. It also lets you use the most popular open source languages to build web applications.
[00:01:28] Learn how to code online with Educative’s text-based courses with in-browser embedded coding environments. With their newly launched Educative’s subscriptions, users can now get unlimited access to every course offered with a single fee. Get 10% off site-wide by going to educative.io/codenewbie.
[00:01:49] DigitalOcean offers the simplest, most developer friendly cloud platform. It’s optimized to make managing and scaling apps easy with an intuitive API, multiple storage options, integrated firewalls, load balancers, and more. Get started on DigitalOcean for free with the free $100 credit at DO.co/codenewbie.
[00:02:17] SY: Thank you so much for being here.
[00:02:18] CE: I am so happy to be here, Saron. Thank you.
[00:02:21] SY: So I want to start by hearing a little bit about how you got into coding. Where did it begin for you?
[00:02:25] CE: So I have been in software development professionally for 25 years, but actually got my start when I was about seven or eight years old. My dad was an engineer and the company he worked for had a mainframe computer. So for those who don’t know, that’s a massive computer, often the size of a room, and it didn’t have a display. All of the interaction was like you entered stuff on a keyboard and you saw the output on green tractor-feed paper. When my dad was slacking off at work, you play a game on a mainframe called Adventure, and it was this dungeon exploration game where you go into different rooms. You’d find different items, the neuro puzzles you had to solve and so on. And he would bring home the printouts from this game and I would read them and I was just fascinated by this world that was living inside of a computer. And one day in summertime when my dad came home from work, he saw that I’d taken over the entire living room with note cards and yarn. So on each note card, I had written a room or an item or a puzzle, and all of the things that you could do in that room or with that item or for that puzzle were on another note card that was connected via tape and yarn. So I had tried to create my own game based on the game that I read that he was playing on the mainframe. And as soon as he saw this, he didn’t get mad at me. He was like, “I guess it’s time that we get a computer.”
[00:03:58] SY: Yeah.
[00:04:00] CE: And this was the late ’70s so this is a long time ago, and there weren’t a lot of people who had the privilege of having a computer in their home, but he brought home that TRS-80 from RadioShack, set it up and taught me how to use it. And back then, computers didn’t have hard drives. There, of course, wasn’t the internet. They didn’t even have disc drives. We used cassette tapes. And if you wanted a program on your computer, you had to type it in. So there are magazines like Byte and others that would have source code listings in the back. So I would be so excited when a new issue of Byte would arrive at home. I would type in whatever program is in the back of it, and then I started like paying attention to what I was typing in and wondering, “Well, what if I do this instead?” I would try tweaking it and making it my own to better understand how it works. That led to me creating my own games, writing my own programs, and that’s something I just continue doing my entire life.
[00:04:55] SY: Okay. So you started at seven or eight and it sounds like you kept doing this as part of your life, part of your world. Did you end up studying this in college?
[00:05:04] CE: In high school, I took three years of what was called computer literacy, which was like a basic programming class. Our first assignment was to write a coin toss simulation. I did it graphically with animation. My teacher saw that and was like, “Okay, this course is not going to work for you.” And he created a curriculum entirely for me based on the level that I always had.
[00:05:27] SY: Oh wow!
[00:05:28] CE: That was amazing.
[00:05:29] SY: What a good teacher.
[00:05:29] CE: And I helped teach the class and I founded a computer club and I was like, “Yes, I’m going to be a software developer when I grow up.” Fast forward to a couple of years, I’m 17 years old and I just got into school and I am pursuing a computer science degree. My very first computer science class, the assignment was to write software for an ATM and we had to write it in C and I was like, “I don’t understand how it’s supposed to take me an entire semester to do this assignment first of all, and secondly, this is so boring.” I was just born out of my skull and I was like, “If this is what it’s like to be a software developer, I have to rethink things. I don’t think I can do this for a living.”
[00:06:12] SY: Oh, interesting. Okay. So when you dropped out or even when you decided that the CS degree was it for you, were you still programming just for fun?
[00:06:19] CE: Absolutely. I have always been really passionate about it and it’s a great creative outlet for me, so I kept backing away. Fast forward a few more years, I’m working for an engineering company in Austin, Texas, doing media relations of all things. I was a smoker. A lot of people smoke back then. And during smoke breaks, there was this whole cross section of people from all around the company who would all be gathered in the break area. And I would always end up talking to the programmers and the IT people because we had a lot of shared interests and I would talk about the stuff that I was doing. They would talk about the stuff that they were doing. And then one day, one of them approaches me. This is 1996. He approaches me and he says, “The company is going to build its first website. There’s going to be a web team devoted to it.” And I was like, “Oh, that’s so great. It’d be great to have the company actually have a presence on the internet. Cool.” And he said, “What do you think that’s going to do for your career?” And so that was my very first programming job.
[00:07:21] SY: Wow. And was it all you thought it would be or how did that end up going for you?
[00:07:27] CE: It was great. We had our team, it was a small team, but we work really closely with other people throughout the company from a graphic design perspective, from a content perspective, from a marketing perspective. It was a very active, social, exciting project that everyone was super behind and the stakes were very high. I felt it was like a lot of pressure, but not so much pressure that it wasn’t enjoyable. And we launched that website and we did some amazing stuff, and I learned and grew tremendously. And it was a very positive experience for me having that as my first project.
[00:08:01] SY: So all these years when you’re coding, how are you learning, especially during the time where there really wasn’t the internet? Because right now I feel like there’s such a huge community of developers specifically for new developers and they’re really supported and really nurtured in their coding journey. And back then I imagine it wasn’t quite like that. How are you leveling up? How are you developing your skills?
[00:08:23] CE: Yeah. That was a real challenge back then because most people who worked in the industry did have CS degrees and now today we celebrate people who are bootcamp grads or who are self-taught or have taken their own path, their own alternative path to a career in technology. But back then, that was uncharted territory. I read a lot of books and I talk to people about what they were doing and I would like watch them as they work. I was a sponge and I was soaking up everything I could and I would like read something in a Cyberpunk novel and that would make me think, “Oh, I wonder what artificial intelligence is all about.” And I would go and get a book on AI. I just used every resource at my disposal to learn and grow as a developer.
[00:09:10] SY: Professionally anyway, you started working on this website for your company. What kind of work do you do now?
[00:09:16] CE: I am an architect at a company called Stitch Fix. We’re a personal styling company with 25 years of experience. I can tell you for people who are at the beginning in their careers, as you grow more senior, it’s not just that you’re expected to write more code faster. There’s a code aspect to my job, but my job is about leverage and impact, impact on our technical culture, impact on the architecture of our systems, impact on the people who are working in the company as engineers, impact on hiring. It’s really about using my experience and tapping into that experience, both technical and interpersonal to make the company more successful. So some of that is coach, some of that is mentoring, some of that is teaching, some of that is collaboration with other people. It’s incredibly satisfying. I absolutely love my job.
[00:10:09] SY: So Stitch Fix is an interesting company because on the surface it doesn’t sound very technical, this idea of kind of personal stylist for people through the mail. It doesn’t really sound like it has a huge tech engineering focus. What are some of the technical challenges that you deal with at a company like that?
[00:10:28] CE: Well, Stitch Fix’s approach to personal styling is pretty interesting because Stitch Fix is a very data-driven company. So we actually have an entire engineering division that uses machine learning and predictive analytics to try and help the human stylists who are ultimately responsible for styling someone’s clothing but to make recommendations to them and we’ll look at the patterns that people are falling into when they are evaluating if they want to keep an item of clothing or not. We actually go so far as to analyze characteristics of articles of clothing that are successful that a lot of people like and we actually design our own clothing algorithmically or in part with algorithms.
[00:11:13] SY: Oh wow.
[00:11:13] CE: Beyond that, warehouse operations are very critical to our business, and that means automation and automation means lots of computers talking to other computers and that requires code. Then there’s the public facing website. There’s everything in between from finance, actually billing people, what does stylists do causes a ripple effect through all the systems. There’s customer communications. There’s finance getting people to pay for it. There’s the warehouse operations. There’s shipping. There’s a tremendous amount of work that goes on behind the scenes that someone who gets a box of clothing may not be aware of.
[00:12:05] SY: Over nine million apps have been created and run on Heroku’s cloud service. It scales and grows with you from free apps to enterprise apps, supporting things at enterprise scale. It also manages over two million data stores and makes over 175 add-on services available. Also, you’re not walking through the service. So why not start building your apps today with Heroku?
[00:12:30] Career Karma is a free service started by bootcamp grads for bootcamp grads. Coaches, our current coding bootcamp students, who mentor people to help prepare and get accepted to bootcamps in just three weeks We spoke to Kesha Lake who used Career Karma and is now an engineer at Stitch Fix.
[00:12:49] KL: I was really looking for a way to jumpstart my career, but not just getting me ready for the career itself, but to get me ready for bootcamp. I figured if I can do the 21-day challenge, then I can do the bootcamp.
[00:13:02] SY: So what was the challenge? What was it like?
[00:13:03] KL: The instructions were to speak to one person on your level and one person above your level every day and then post some sort of proof about it as a screenshot or a picture.
[00:13:14] SY: Did you know anything about coding before this?
[00:13:16] KL: I knew absolutely nothing about coding. So the 21-day challenge really set me up perfectly. I made friends, I started networking with people who would eventually make recommendations for me to get the job that I landed, but they also offered a lot of resources and support. You know, initially I was coding on my phone because I didn’t have a working laptop. Career Karma put me together with another one of their members who donated the first laptop and then I do get to upgrade to a Macbook so I’ve got another laptop from the Career Karma community.
[00:13:45] SY: So what kind of work do you do at Stitch Fix?
[00:13:46] KL: So I work on automation projects that help plan of ease the burden of our warehouse workers. So I kind of do a lot of telling machines what to do, which is exciting. It’s mostly back end work.
[00:13:56] SY: That’s fancy.
[00:13:57] KL: Yeah, it is. It’s kind of sexy and I’m really excited about it. I really leaned more towards back end development as opposed to front end during bootcamp. So to find a job that would let me focus on that, it’s kind of a dream come true.
[00:14:09] SY: Visit careerkarma.com/codenewbie to get started. So you created something last year called the Hippocratic License. Before we get into that, let’s start with some basic definitions. In the context of coding and software and open source, what is a license?
[00:14:31] CE: About 20 years ago, there was something called the Free Software Movement. There was a guy who in the ’80s was working in a company who got really frustrated that he couldn’t make a network printer do what he wanted it to do, and he knew that if he had access to the source code, he could fix it, but the source code was proprietary. And it’s made him very angry and he got it in his head that all software should come with source code. That’s how the Free Software Movement started and open source came from the Free Software Movement and 20 years ago, a group of individuals came together to write what’s called The Open Source Definition, the OSD, and the organization that wrote that is called the Open Source Initiative or the OSI. They were trying to make free software, a software distributor with source code palatable to corporations. They wanted corporations to use software that was produced out in the open where everyone could see the source code. So they decided that the best mechanism for making free and open software palatable to a corporation was via a license because licenses are something that corporations understand. So they had to find exactly what criteria a license would have to incorporate in order to be considered open source and basically that means you’re distributing it with source code and you’re not placing any restrictions on the usage of the software that you’re licensing. So anyone anywhere can do anything they want with it, including using it for profit, and that level sustained us for a long time. But what we’re seeing today and what led to the creation of the Hippocratic License and other ethical open source licenses is that openness is not enough and openness is not the most important aspect of software anymore.
[00:16:22] SY: Okay. So when we talk about the use of licenses, who needs one? Like if I start my own little open source project, I’m pulling data and displaying it, I don’t know, on a map or something, do I need a license? Is it only for big companies? Like what’s the application nowadays?
[00:16:38] CE: That’s a really interesting question and it’s a little bit more complicated than people might expect at first. In order to call something officially open source, it does have to have a license. The open source definition is all about licensing. So there are some people who believe that the license is the most important thing and that the license determines what is and is not open source. I think over the past decade, there’s a working definition of open source that’s very different. When people say open source today, they mean software that’s created collaboratively and out in the open. So if all you’re interested in is collaborating on software and getting contribution for other people and building a community, a license doesn’t have anything to do with that. The license comes into play when someone else wants to use your code and they need your permission to use your code because you own it. It’s your intellectual property. So if you’re doing a Tetris clone in PHP because you want to learn PHP, a license is a nice to have, but realistically, no one’s going to want to use your software. That’s not why you’re writing it. But if you’re writing something that you do intend for other people to use, they need your permission and that’s where the license comes down to.
[00:17:56] SY: So if for some reason my Tetris clone is actually really innovative and people say, “Oh my goodness, I need to have some of this Tetris clone for my project,” if I don’t have a license, does that make me vulnerable? I’m trying to figure out what the repercussions are to not having one and what benefits I get by having one.
[00:18:16] CE: The license is about the usage, not about your rights. So a license is there to reassure a company that wants to use your software, that you’re not going to sue them for using your software. You’re granting them permission legally to use your software. So the license isn’t even about you. It’s about the other person. It’s about who’s going to take your work and combine it with other people’s work, in turn, there’s something new.
[00:18:45] SY: So what is the process for creating a license? How do you do that?
[00:18:48] CE: You hire a bunch of lawyers.
[00:18:50] SY: Okay.
[00:18:52] CE: Honestly, there’s intellectual property law that’s involved, and again, the people who started the open source movement are very big on licenses. They think that license has defined open source. So people are creating new licenses all the time to meet their particular needs or to make sure that they have the rights that they want to have and control over who uses it and how and all of these licenses that people create are submitted to the open source initiative to OSI and the OSI has lawyers and people who are well-versed in intellectual property law. They make the determination of is this license an open source license, is it compatible with other open source licenses and they give it their blessing. And it’s a long and involved process and it involves a lot of discussion and it does involve a lot of lawyers. So it’s no simple matter to create your own license. There’s a lot involved with that, with the way open source is governed today, which is an important point.
[00:19:53] SY: How many different licenses are there?
[00:19:56] CE: There are literally dozens of them, although the most well-known, the one that people use the most, there’s like a public license or the GPL, and there’s the MIT license.
[00:20:06] SY: Yes. I’ve heard of those.
[00:20:07] CE: A lot of these licenses are very heavy on legalese, but the MIT license, anyone can read it and understand it, and I think that’s why it’s one of the more popular licenses.
[00:20:18] SY: Okay. So now let’s get to your license, the Hippocratic License. What is that all about?
[00:20:24] CE: There are a lot of people like me who think that we should have a say over how the software that we create is being used. We believe that open software is not the most important aspect of writing software in public and writing collaboratively that the openness and the freedom to do with it whatever people want to do with it is not the most important thing. Increasingly, there’s a backlash against technology companies engaging with ICE, for example, and there are human rights abuses all around the world that the software that open source developers like you and me are creating that is used to perpetrate atrocities against people. It’s really coming to the forefront with the new tech for ICE movement with things like that. People want some kind of way of saying, “No, I will not give you permission to use this any way you want to if I think that what you’re doing is wrong or what you’re doing is evil.” So the Hippocratic License is one of many licenses that are attempting to put restrictions on how the software can be used within an ethical framework.
[00:21:33] SY: Tell me a little bit about how you went about creating this because I feel like when we say ethical and who gets to use my software, there’s a huge gray area, right? Like what is considered ethical.
[00:21:42] CE: There really is.
[00:21:43] SY: Right. Like what is okay with me that may not be okay with you? So how do you go about writing something that’s ethical and legal?
[00:21:51] CE: I started with the MIT license because as I said, it’s the easiest to understand and it has the least legalese in it. And I edited a clause to the MIT license, which is allowable because the MIT license is open source. So I added onto it that the software cannot be used by any individual or organization who knowingly commits human rights violations as defined by the United Nations’ Universal Declaration of Human Rights. So of course there is no single moral authority that we as humanity be turned to. We’re not all the same religion. We don’t all have the same idea of what’s right and wrong. There’s lots of gray areas, as you pointed out. The closest thing that we can agree on is that human beings have some basic rights and the UN Declaration of Human Rights lays out what those basic rights are and what could be less controversial than a document put together by almost every country in the world that says, “Here are the essentials of human freedom. Here are the bare minimum rights that we as human beings have.” So that’s what I tied the definition of ethics and morality to.
[00:23:02] SY: I love that because you’re basically leveraging work that has already been done, like there are already tons of people literally from every country who have decided what the human rights should be and have already put a lot of thought and a lot of work into that. So that seems, yeah, like a very agreeable thing to do. I feel like everybody should be on board with that.
[00:23:22] CE: You think so?
[00:23:23] SY: Yeah. So I know there are a lot of people who have been critical of this license. Tell me a little bit about that criticism. What are people not into?
[00:23:32] CE: The main criticism that I got right out of the gate was people saying, “Well, that’s not open source,” because according to the open source definition, you cannot restrict in any way how your software is being used and saying, “You can’t use my software to commit human rights violations.” Many people believe that stands in stark contrast to the notion that software should be free for any use at all, and the OSI, the Open Source Initiative stands by that definition. In fact, in the FAQ that they have on their website, there’s a question on the FAQ of like, “Well, can my software be used for harmful purposes?” And they say, “Yes, freedom means giving freedom to everyone, and that includes people who are evil.” And I don’t think that software freedom is more important than basic human rights. So I really don’t understand that argument. It’s an appeal to authority. They’re saying, “Well, the OSI is not going to approve this as a license, so it’s not really open source.” If you go instructions, it’s not really open source anymore. And I think that really highlights a difference between the very technical definition of open source, which is all about licensing and the experience of open source that millions of developers around the world have which is more about collaboration and more about developing software in the open and more about combining software that different people have written to create novel uses and novel applications. That’s been what open source means to me. I think that’s what open source means to most people. And the licensing argument is weak. It’s frankly very weak.
[00:25:14] SY: So do you need the OSI to make a license? Can you just make your own license and get people to use it?
[00:25:21] CE: You can absolutely make your own license. There’s nothing stopping you, and you can call it open source. They don’t own a trademark on the term open source. They have authority because people have given them authority. And if people think that the OSI is not in step with their needs and their ethics and their morality, there’s nothing stopping you from completely ignoring the OSI. And after I announced the Hippocratic License, the OSI actually tweeted at me and asked me to remove open source from the website that the license is placed on and I refuse because I don’t think they have the authority to tell me what open source means because open source means something different to me, it means something different to millions of people beyond licensing.
[00:26:10] SY: Yeah, I agree. I love this distinction between open source, the legal term and open source as an experience, because I definitely, and I’m relatively new to programming, I’ve been in tech for seven, eight years now, and to me, when I think of open source, I definitely do not think of licenses. I think of the stuff you mentioned of people coming together and collaborating from all different parts of the world, people sharing code, producing code together. And you know, that’s the experience that I’ve heard of, that I’m familiar with. And the idea of licenses is, I can’t even say it’s at the bottom of the list because it’s not even on the list, like they’re just two very, very different things. So yeah, I really appreciate that distinction. So even if this license were approved and yeah, even if it wasn’t approved, if it was widely used by tons of people, how enforceable is it actually if I put my stuff out there and then someone does something awful with it? What can I actually do about that?
[00:27:07] CE: That’s a really interesting question, and that’s actually the second criticism that a lot of people had about the Hippocratic License. That criticism is that, “Well, it’s not enforceable.” And interestingly, there are court cases going on today that are establishing whether any open source license is enforceable. So it’s not a given that the MIT license is enforceable. It’s not a given that the new public license is enforceable. These are questions that are being cited in the court today. So there’s no guarantee even with the strictly defined open source licenses that those are enforceable. So that’s a really weak argument. The leverage that a license, like the Hippocratic License or another ethical license gives you is that companies are afraid of being sued. So when they use your software, they’re entering into an illegal agreement with you. And if they think that they could be sued by the copyright holder, which is you as the author of the code, they’re not going to use your software. They have legal teams that review licenses and they’re going to say, “No, we can’t touch this because there’s a chance we could be sued,” and that’s exactly the result that I want. The result that I want is not for me as a developer to take Google to court. That’s not going to happen and I’m not going to get the outcome that I want. The outcome I can get is for Google to say, “Wow. We work with ICE and this software tells me that if I work ICE I’m in violation. I guess I can’t use that software.” And that accomplishes Michael as an ethical developer.
[00:28:54] SY: Coming up next, Coraline talks about the impact she hopes to have with the Hippocratic License, as well as creating the Contributor Covenant after this.
[00:29:11] With DigitalOcean’s cloud infrastructure, you’ll be able to build faster and scale easier from predictable pricing to flexible configurations, to world class customer support. You’ll get access to all the infrastructure services you need to grow. Plus, DigitalOcean’s community provides over 2,000 tutorials to help you stay up to date with the latest open source software, languages and frameworks. Get started on DigitalOcean for free with a free $100 credit at DO.co/codenewbie. That’s DO.co/ codenewbie.
[00:29:46] If there’s one thing that comes up over and over again in our podcast, it’s that everyone has a different way of learning. We had our producer, Levi Sharpe, try out Educative to level up his Python skills. And he really took to the service’s tech space courses with in-browser embedded coding environment. And Levi, what did you take?
[00:30:06] LS: I took learn Python from scratch, so I’ve been learning Python a little bit. So I was a little bit familiar, but I found that these courses, they’re laid out in a really intuitive way. There’s like the sections that lead seamlessly one into the other. The Python 1 goes from data types and variables to conditional statements, functions, loops, and then each section has a quiz to make sure that you’re not just blasting through and like the information is going in one ear and out the other.
[00:30:38] SY: I love the quizzes.
[00:30:39] LS: Yeah. It really called me out on my BS because I was like, “Yeah, yeah, I get it. I get it, I get it.” And then I took the quiz and they were like, “You don’t get it.” And I was like, “Ah!”
[00:30:49] SY: You got me.
[00:30:50] LS: You got me. And then throughout all of these different sorts of sections, you can code within the service itself. So you don’t need like an external coding thing. I should know what that’s called. Do you know what that’s called?
[00:31:05] SY: I’m not going to tell you. I’m not going to give you an IDE.
[00:31:08] LS: Yes, that’s what it says, an IDE. Did you know I’m a producer for a coding podcast?
[00:31:14] SY: A technical podcast.
[00:31:15] LS: Yeah.
[00:31:16] SY: Two actually, two technical podcasts.
[00:31:18] LS: That’s true.
[00:31:19] SY: Get 10% off site wide by going to educative.io/codenewbie. So if this license ends up being widely adopted and people love it and people use it, what kinds of impact are you hoping this has?
[00:31:37] LS: There are two main things I’m trying to do. First of all, I want organizations like the OSI and like the Free Software Foundation, I want them to wake up to the world that we live in today. When the definition was written, it was written for me very corporate perspective, the Big Bad that we were trying to figure out how to work with was the big corporation, it was Microsoft, and that’s not the world we live in today and nothing has changed. Over the past 20 years, there’s been exactly one addition to the open source definition, and it was a technicality. I think the open source establishment, the people who have put themselves in charge, frankly, of open source are not reflecting the values of open source developers today, and they’re not recognizing that open source is something that has changed and grown and evolved over time, and that the people who are writing software in the open today are not the people who are doing it back then. And I want to see them modernized. I want to see them be responsive to the needs of the community that in theory they serve. The second thing I want to do is give developers power back. We put a lot of our heart and soul in open source software. We hear that in the open. We risk a lot of vulnerability. The entire world, our friends, our colleagues, the people we look up to, even our potential employers are looking at this code. That’s a tremendous amount of pressure and we’re pressured to write code in the open because a lot of companies want to see your GitHub history and now they want to see what repost you have and what you’ve contributed to. And I as a developer, want not only to participate and take part in that community and contribute to that community, but I don’t want to do that, the risk of giving up my values. I want as much as possible. I want my values reflected in the community that contributes to my software, which is why I have a code of conduct, and I want my values reflected in a way my software is being used. I don’t care if someone uses it to turn a profit. I don’t think that’s unethical, but if they’re using it to separate children from their families, you have to draw a line somewhere. And with the way open source licensing works today, I don’t have that power. I don’t have that right to make ethical decisions, make moral decisions about how my work is being used and that to me is very wrong.
[00:34:07] SY: So I’m trying to think about the layout here of the people who are involved in this conversation and there are the everyday developers, the people who are creating the software and the companies who are using them. And so I’m wondering in terms of who is in support of and who is against this type of license, is it basically split between those groups? Is it the people versus the companies or have you seen some companies embrace this new license?
[00:34:30] CE: I actually have heard absolutely nothing from companies about the Hippocratic License. The only people I’ve heard from are developers who do have that strong moral sense and want to have some control over how their software is used and the purists, the open source purists who believe that software freedom is the most important thing and trumps everything else.
[00:34:52] SY: So you also work on this other thing that you’re pretty well-known for called the Contributor Covenant. Can you tell us more about what this is?
[00:34:59] CE: Sure. I think everything I’ve talked about so far about open source is about interacting with other people, with contributors, with users, with people who are reading the source code to learn. I think that developing software in the open is a community effort and that the most successful projects have curated a community of people around them. It’s not just about the code, it’s about the people, and the people are just as important as the code. Within any community, there are shared values, there are things that you tolerate and things you don’t tolerate and there’s unspoken rule to behavior. So we have codes of conduct that are very popular today. It’s not an unusual notion. You go to an event, there’s a code of conduct. Back in 2014, it was very controversial to have a code of conduct at a tech event, at a tech conference. There was a huge controversy. It was a huge fight to get tech conferences to adopt codes of conduct. And while I was seeing this unfold, and I was taking pardon in this very heated discussions, I saw the analog to that not only were in person events and communities needing to have a statement of shared values and a statement of like what behavior is encouraged and what behavior is discouraged and what would be tolerated and what wouldn’t be tolerated. But what about the place where we’re writing the code and not just where we’re talking about it and sharing it? And that’s when I had the idea for creating a code of conduct for open source projects and that’s how the Contributor Covenant was born.
[00:36:35] SY: And you recently updated it. There’s a 2.0 Contributor Covenant. What are some of the changes that you made?
[00:36:40] CE: Yeah, it’s actually a work in progress. It’s a draft right now and I’m leaving it open for public comment for a while and I have some other people who are working in the language to make it as strong as possible. When I first wrote Contributor Covenant, I was very much thinking about open source projects and I was thinking very much about the activities that go on with maintaining and developing an open source project. So there’s a lot of language, talked about poor requests and issues and things like that and what I’ve seen over the years as the Contributor Covenant has been adopted by tens of thousands of communities is that it’s not just about the projects, it’s not just about what happens on GitHub, it’s about Twitter, it’s about mailing lists, it’s about events, it’s about meetups, it’s about communities in every way that our community manifests. So I change the language to reflect a more community centric view of open source as opposed to a very technical or project centered view. And that’s an important thing, I think, because that makes the Contributor Covenant applicable to a wider variety of community expressions, but the biggest change actually comes in the form of what I call a “Community Impact and Consequence Guide”.
[00:37:55] SY: Oh, what’s that?
[00:37:55] CE: So people who are opposed to codes of conduct, and there are a lot of them, and they’re very vocal and they’re nasty people. They say, “Oh, if there’s a code of conduct, I say one wrong thing and suddenly I’m banned from the project,” and whether that’s something they were really afraid of or just a strawman argument that they’re making is kind of beside the point. A lot of people who are good faith actors who do adopt the code of conduct don’t know how to enforce it. Like what you do? What is bad enough to ban someone from our project? What is something that I want to ask a person to apologize to someone else for? What is something that I need to warn someone like, “Hey, this isn’t acceptable. Please change your tone or please don’t do that again”? So Contributor Covenant 2.0 has some basic enforcement guidelines that says someone does something and it has this kind of impact on the community, here’s the consequence of that action. Here’s what community leaders are going to do to try to undo or repair the damage that this action has had on the community and arranges from very minor things like someone got angry and used some sharp words and was maybe overly critical of someone or maybe intercept some words that they regret that had an impact on someone and community leaders should step in. They should try to fix the damage. They should try to work with the person who was hurt as well as the person who did the hurting to heal the damage, to heal the community and keep the community healthy and strong.
[00:39:34] SY: So at the end of every episode, we ask our guests to fill in the blanks of some very important questions. Coraline, are you ready to fill in the blanks?
[00:39:42] CE: Yes, I am.
[00:39:43] SY: Number one, worst advice I’ve ever received is?
[00:39:46] CE: This comes from my father. My father means, well, he and I did not agree at all in terms of politics and we have very different lives and very different values, but he does worry about me. One thing we didn’t really cover is like the backlash to things like the Contributor Covenant and the Hippocratic License and Ethical Source can be very nasty. I received death threats. There are entire forums devoted to deadnaming me and misgendering me. There are a lot of very cool people who want to do me harm because I’m trying to do good. So he worries about me and he’s told me before, “Why can’t you just keep your head down and just do your job and not worry about anything else?” And I think that’s terrible advice. That’s the worst advice. Because I have privilege, I have leverage, I have a voice, and if I’m not doing everything in my power to use those privileges to help other people, to make this industry better, to make it more welcoming, to make it more diverse, to make it more inclusive, then I’m failing as a human being. So I cannot just keep my head down and I cannot just focus on my work. I’m part of a larger world and I care about that world and I’m going to do everything in my power to make that world as good a place as I possibly can.
[00:41:03] SY: Well, we all very, very much appreciate the work that you’re doing. Thank you so much.
[00:41:07] CE: Thank you, Saron.
[00:41:09] SY: Best advice I’ve ever received is?
[00:41:11] SY: When I decided to transition my gender transition, a dear friend of mine who I’ve known since I was five years old sent me a present. It was a bracelet that was engraved with the words, “Be true to yourself.” Those words had a lot of meaning at that point in time because it was about figuring out who I was and figuring out what changes I wanted to make to be the person that I wanted to be, and that was a very good advice then. But even now where now I feel good about who I am and I’m loving my authentic life, it’s still important to be reminded that in everything I do and everything I say and every way that I act, I should be true to myself because that truth matters and that sincerity matters.
[00:41:57] SY: Absolutely. Number three, my first coding project was about?
[00:42:01] CE: Well, I told you about my game on the note cards with the yarn. My first project that I was really proud of though was there was this thing called MUSHes in the ’90s and you could think of them as MMORPGs, Massively Multiplayer Online Role Playing Games, except there were no graphics. It was all text-based. I found myself in charge of a couple of different MUSHes. People use them mainly for playing games. I was fascinated with artificial intelligence, so I built a bot that would wander through the game and interact with people and try to pass itself off as human. And it was super simple and super rudimentary and it was clever code that did a lot more than you would expect from a couple hundred lines of code. But I was so proud of that, and that was the first project I think that brought me a level of delight. So it wasn’t simply intellectual curiosity anymore. I was actually experiencing an emotional response to this code that I had written.
[00:43:02] SY: Number four, one thing I wish I knew when I first started to code is?
[00:43:07] CE: Interpersonal skills are just as important as technical skills. I think a lot of people are getting started in the industry and I see this particularly in people who are switching careers at some point in their lives. They think they have to know everything. They have to be very technical. They have to know the latest techniques, where there’s tools, where there’s frameworks when in reality those things are important and technical skills of course are important, but if you can’t work with other people, if you don’t know how to communicate, if you don’t care about other people, if all you focus on is the technology, you’re not going to be as successful as you could be because interpersonal skills are vital and it matters how we treat each other and that matters in the real world just as it matters in the coding world.
[00:43:55] SY: Well, thank you again Coraline for joining us.
[00:43:57] CE: Thank you so much. It’s always a pleasure to talk to you Saron.
[00:44:07] SY: This episode was edited and mixed by Levi Sharpe. You can reach out to us on Twitter at CodeNewbies or send me an email, email@example.com. Join us for our weekly Twitter chats. We’ve got our Wednesday chats at 9 P.M. Eastern Time and our weekly coding check-in every Sunday at 2 P.M. Eastern Time. For more info on the podcast, check out www.codenewbie.org/podcast. Thanks for listening. See you next week.
Thank you to these sponsors for supporting the show!