I occasionally get asked why I spend so much of my free time writing software and giving it away for free. There are a number of reasons for this—I like to build things and I use it as an excuse to practice and improve my skills—but one of the most driving motivators for me is that I see open source contributions as a civic duty, a moral obligation to the rest of the world.

Considering that I am an employed programmer living in Silicon Valley that is generally thought to not be incompetent, you could deduce that I’m not worried about how I’m going to pay for my next meal. I’m not rich by any stretch, but I have a reasonably comfortable lifestyle, and that’s all I’d ever really want. After all, does a programmer need much more than a laptop and a cup of coffee to be content? Given that I’m not stressing about whether or not I’ll have a place to live and food to eat next month, I’m among the most fortunate people in the world. And if you have access to the technology needed to read this, you probably are too.

Morality is a touchy subject that varies widely among individuals and cultures, and this post is not meant to imply that my sense of morality is necessarily correct. However, I feel that people who are fortunate enough to survive on their own means have an obligation to give back to their community. I believe that some degree of self-sacrifice and civic duty is necessary to build and maintain a community that we all want to live in. This can come in many forms—giving to charity, doing volunteer work, or in my case, writing free software. It doesn’t really matter how you try to contribute to your community, it just matters that you are doing it.

Granted, I’m not writing software that will deliver clean water to poor countries in Africa or help cure Malaria. I tend to focus on web animation tools and other UI utilities. However, I’m doing work so that others don’t have to. My goal is to save time at scale so that other people can solve different problems that don’t yet have solutions. To take an extreme example, consider the GNU Project. As a whole, GNU has saved humanity man-centuries worth of work. There’s very little time spent developing operating systems and basic utilities anymore, because that is mostly a solved problem. Instead, we use GNU tools that others have spent the time to build, freeing us up to pursue other challenges like statistical modeling and AIDS research. If you have doubts about the value of free software, just look at GNU.

Altruism is, unfortunately, not a terribly common value in Silicon Valley. At best, larger companies will have a branch dedicated to positive social impact, and smaller companies may have the occasional charity fundraiser. But it seems that a large portion of Silicon Valley tech companies are focused on some self-serving vision or niche problem that only the founders and their friends have. I don’t want a culture where the only problems being solved are the ones that tech people have. I feel that writing free software on my own time is a tiny step in the right direction, even if indirectly. My dream is that someday, a free tool I’ve written will be used to help do something truly valuable. Anyone can do this, it doesn’t require much money or time—just a sense of the bigger picture.

Originally posted on Jeremy Kahn's Dev Blog. Reposted under Creative Commons.