Interview with Adam Miller of Red Hat on open source responsibility
A responsibility to use the open source products we work on
It takes a lot of courage to speak up in front of more than 5,000 people about something close to your heart. Especially when your stage is a company-wide email list within Red Hat (called memo-list) where everyone from engineers to interns to the CEO are reading and having their say. Nonetheless, one day Red Hat engineer Adam Miller decided it was time to start a conversation about what it means to be part of the open source world, and to remind his colleagues of the responsibility to use open source software and to contribute to making it better. He captured my attention, and that of many other Red Hatters globally.
Adam has been involved in open source for years and at Red Hat for two of them. By day, Adam works at Red Hat as a release engineer for OpenShift, a Platform-as-a-Service tool used by developers to create and host applications in the cloud. In his spare time, he's deeply involved in the Fedora community as a packager, quality engineer, and ambassador, to name just a few of his roles. Adam is truly an open source devotee, so committed that he's had Shadowman tattooed on his left forearm.
In this interview, I find out what prompted Adam to send out an email to the entire company about how we use the open source products we make and what his thoughts are on the evolution of open source culture.
Photo by Colby Hoke
Recently, you wrote to Red Hat's memo-list about our responsibility to use the products we work on and the importance of contributing to the open source community to make that software better. What prompted that?
There was a debate about the overwhelming population of Mac users at recent open source conferences, and that spawned the following thought process for me.
It basically boils down to the fact that in the open source world, the majority of work is done on open source UNIX-like operating systems such as GNU/Linux, *BSD, and somewhat recently in the IllumOS space. Each of these options are solid choices for server-side use, with varying preferences on which is the best. I think the server market share in recent years is evidence of this. However, the desktop has kind of been the peak of the mountaintop that we've yet reached. In the past few years there's been an influx of people who I think have given up on the desktop, have put down their distro of choice, and picked up a Mac because it offers a UNIX-like work environment with a nice polished "out of box" experience. I don't think this is inherently wrong or evil, but I do think that we all owe it to ourselves, and to our community, to sit back and ask: "What is this $thing lacking that makes me not want to use it?" (Though most often that $thing is GNOME3, Unity, Cinnamon, MATE, KDE, or some distro that ships with the desktop by default.)
From there, I think we should make strides to contribute upstream in any way we're able to. This in turn will help improve the situation for ourselves as individuals, and everyone else who might share the sentiment. Instead of turning away because we think something is lacking, we need to remember that those who came before us didn't just forfeit and pick up the closed source option because it had a better "out of the box" experience. Instead they dug in and did the work to make things better for themselves and the community at large, and in the end that deserves a standing ovation to what this whole open source movement is all about. My hope is that we collectively don't forget that.
I've seen almost 200 responses to your memo-list post so far. Did you get the reaction you were hoping for?
I did and I didn't. I had hoped to open a line of constructive conversation, and I did have many conversations with people, but they were off-list. Those conversations were very constructive and opened my eyes to different perspectives, use cases, and scenarios I had not previously thought of—so for me personally it helped, though I'm not sure it really made the desired impact. My real goal was to at least get people thinking about it and of how we can improve the situation. I'm unsure if that really happened, but I hope that it did.
What sorts of open source projects have you worked on?
The first one I have to mention not only because it's what I do as a day job, but also because I am earnestly excited about what we're doing (which makes it near and dear to me): OpenShift. OpenShift is open source under the Apache 2.0 license and developed upstream with the broader community under the brand OpenShift Origin. We offer OpenShift Online (which is what I primarily work on), OpenShift Enterprise for deployment on-premise in customers' datacenters of private clouds, and our upstream open source project OpenShift Origin. This incorporates all kinds of open source technology, including core Linux kernel capabilities and SELinux for multi-tenancy at the operating system layer. This creates what we like to call a "Gear," and inside Gears you can run a "Cartridge," which is what delivers functionality in the PaaS environment. We offer Cartridges ranging from programming language runtimes such as Python, Ruby, Java, Node.js to databases such as MongoDB, PostgreSQL, and MySQL, as well as "utility" type functionality such as cron and haproxy. I get the unique opportunity to work with all of these technologies in one way or another. We have great plans for the next generation of OpenShift and are focusing on bringing in even more really exciting technology incorporating Project Atomic, GearD, and Docker, which are things we're working with now. I'm looking forward to them becoming components within OpenShift.
In terms of hobby, or off-hours, I've spent most of my time in the Fedora community. I've worked on various things there, including package maintenance for both Fedora and Fedora EPEL, the Fedora QA Community, and various Fedora Special Interest Groups (SIGs). I could probably talk for hours about Fedora things, because I love what the community and project collectively do and some of the amazing technologies that come out of it all.
I have an odd enjoyment of packaging, build, and deployment automation, so I've worked a decent amount with mock, copr, tito, and Ansible (on GitHub) in my free time and have contributed some patches upstream to a couple of those projects. Each one of them are great utilities in their own right, and I would highly recommend them on the off-chance someone reads this and is in search of new tools for their arsenal.
What is it about the open source methodology that you like so much?
It's the spirit of the broad community's collective thirst for knowledge, innovation, and collaboration.
We exist in a time where anyone can think to themselves: "I wonder how that $thing works." They can then actually go and look at exactly how it does work, and then say to the original authors: "Hey, I think I have a better way," and then start a dialog about that. In the end, maybe we have a better way of doing that $thing, and everyone benefits. We're not limited to the silos of ideas and knowledge found within a single company's walls, but instead can work together with an almost limitless community of brilliant people. This is an exciting concept to me.
How have you seen open source culture and the community changing over the years?
I think the culture at large has stayed pretty true to itself and hasn't changed much at its core. What I mean by that is, I think we effectively still all think to ourselves, "submit upstream," when and where that's applicable. Also, we collectively work in the open just as we always have, just in different outlets now such as GitHub or BitBucket, instead of SourceForge or self-hosting.
One thing I do think has changed is there's a lot of forking of large, "high profile" projects happening these days, but I suspect that is a side effect of the community growing and having competing schools of thought, backed by a population large enough to actually develop off in a different direction. I think both the Unity<-GNOME3->Cinnamon and KHTML/KJS->WebKit->Blink "fork families" are good examples of this. I do also think as things get more popular, you grow in types of users. When you go from a population of just the people who build it to a population of those who build and those who use, the landscape changes, and it becomes more common to meet users who've never contributed anything back. I actually think that's not only perfectly fine, but it's a milestone to be of high enough quality and pervasive enough to have "true users." However, I think we should try and find inviting ways to show those who've never contributed why it is great to do so in order to continue to grow and foster the community.
Another thing that has changed a lot is the topics of what people consider to be important. To attempt to quantify that in a few sentences or paragraphs would be silly of me, but if you think about what was important when the LAMP stack was an up-and-coming hot topic and what's important now, I think it will paint a decent picture.
What do you think we need to be mindful of to continue to nurture the open source community?
In my opinion this is about perception. All too often I will hear something along the lines of: "I can't contribute because I don't know how to code," and I really wish people understood that writing code is only one of the many ways people can contribute. I always like to reference the "Join Fedora" page about this because I think the group who put it together did a wonderful job showing this.
What can people outside of the software realm learn from the open source philosophy?
There are a large number of things that people outside of open source software can learn. One that I think applies most broadly is that working together in a collaborative manner to solve a problem is going to result in a better solution that is developed more rapidly. Also, the methods used to solve that problem should be openly available for others who may face that problem to use as their solution in the future as well. It kind of boils down to the concept—don't reinvent the wheel—but for everything.
How did you end up getting Shadowman inked on your arm? Was it a bet?
It was not a bet. It celebrated 10 years of being a part of the Red Hat community. Aside from my first tattoo (I was 18, went with my best friend... a story old as time that many probably share), I like my tattoos to mean something, and I don't have many. I got my Shadowman tattoo before I joined the company. I was a community member at the time. The Red Hat and Fedora community have shaped my life in more ways than I can count, including (but by no means limited to) my focus of studies at university, my career, my hobby, and ultimately my passion. I eat, sleep, and breathe this stuff, and that means something to me, so I got the tattoo. I got it on my forearm because I wanted it to be very visible. It is my only tattoo that is and I wanted it to be front and center. I almost talked myself into placing it somewhere more "conservative," but my wonderful and amazing wife, Amanda, didn't let me because she knows how much it means to me. She went with me to the tattoo shop and it was an awesome experience. I wear it with pride.
What reactions does your tattoo usually receive?
A lot of people on the team I worked on at the time (again, not at Red Hat) thought it was fake when I first got it, but after a couple months they believed me and just thought I was crazy.
When I meet new people, I normally get one of three reactions:
1) That's awesome.
2) You're crazy.
3) What's the symbol on your arm?
Both #1 and #2 are wonderful, and I am grateful for both in different ways. However, I think my favorite is #3 because I love talking about Red Hat, open source, and just in general what we all collectively do, so it gives me an opportunity to introduce someone new to our world. I get mixed levels of interest, but I'll never stop getting excited about it.
Do you know of others with Shadowman tattoos?
I know of a few other people by reputation that have Shadowman tattoos, but the only person I know well is someone who has had theirs quite a bit longer than I have. It's someone I look up to, and someone I have a lot of respect for. His name is Thomas Cameron and he's a rock star. I encourage anyone not familiar with his work to visit his Red Hat people page.
What does having Shadowman on your arm mean for you?
To me it means that I'm a part of something bigger than myself. I don't view Red Hat so much as just a corporate entity, but as a community of people striving towards the common goals of enhancing open source and the communities that drive it. I do know Red Hat is in fact a corporate entity, and I'm grateful a company exists that "gets it." Because of Red Hat, I am, as many others are, employed somewhere that believes in open source down to its core. This isn't just some marketing tagline for us; this is what we do, and I think that means something. I am fortunate enough to work on open source software, with open source software, and solve problems with open source software every day and make a living doing so. This is my dream job and I couldn't be happier. That is what it means to me.