I’ve gone through a big journey over the last three-and-a-half years. I’ve been in the corporate world and burned the midnight oil. I’ve helped get the OpenFaaS community involved in open source. I’ve seen the reality of production usage, done many conference tours, and given talks at places like KubeCon. Now I’m building and running an independent software business.
Throughout my journey, I’ve seen my share of people come and go, and formed relationships along the way. People get involved in an open source project when it suits their needs and lifestyle, and often disappear when they’re done, cancelling their GitHub Sponsorships on the way. Some know that sustainable contributions are like running a marathon: They’re alongside you every week, working at it bit by bit. Others come in at a breakneck pace that’s overwhelming but exciting, and then disappear after three months. It can be incredibly disappointing when somebody leaves and I’ve invested a lot of my own time and energy into onboarding and supporting them.
People change jobs, change their mind, get married, want less screen time. I struggle with trying not to take it all personally, even though I recognize it’s not usually personal. It can be extremely lonely as an open source maintainer because at the end of the day, there’s only one person who’s got their neck on the line, and that’s me.
Finding a place for creativity and community
I work on a lot of different open source tools, but I’ve got a big 24-inch sticker on my wall for OpenFaaS, which I created in 2016. Our mission is to “make serverless functions simple,” and one of the ways we’ve done that is by creating a really nice command line interface (CLI). Since that’s the first touch-point for developers, and it’s easy to hack on, it’s where we’ve had the most contributions.
We have 22,000 GitHub stars, 270 individual contributors from around the world, and a Slack community with around 3,000 developers, and are growing every day. Everyone is here because they understand the value of open source and want to collaborate with other people on the same level.
There are eight people in the GitHub organization, and everybody’s a volunteer contributing their time. Nobody’s paid to be here, but there are certain expectations, like actively showing up for Zoom calls and taking ownership in the project. There’s a contributor leaderboard so you can see where you are in the top 270, top 100, top 10, and people get excited when they knock others off their spots. To create that community and camaraderie, and build something together, is very rewarding.
A turning point for OpenFaaS was in 2017 and 2018 when we started to get traction at DockerCon and different events around the world. We started to see commercial use with companies like LivePerson, BT Group, Visión Banco Paraguay, and Citrix putting it into production. That was really exciting for the community.
Learning and adapting as you go
Two years ago, one of my close friends, Justin Cormack, suggested I quit my job to work on OpenFaaS full time. But I wasn’t so sure. Who would pay me to do that? I ended up looking at a few different options and spent a year inside a large corporation with an open source business unit until they had a reorganization.
Now I have my own independent business, OpenFaaS Ltd. I figured since enterprise companies were using our open source software in production, they’d want to put money towards seeing it actively supported and developed. But I couldn’t have been more wrong. Even companies that saved hundreds of thousands of dollars a year and were heavily reliant on OpenFaaS wouldn’t pay a single dollar.
It seems to me that successful open source projects are either funded by venture capitalists or had a closed-source commercial product for sale. I tried Patreon, and the best I could get was $700 a month, and nobody can quit their job on that, no matter where they live. So far, GitHub Sponsors has been better. I appreciate all my sponsors and the hard work the community puts in.
It can be frustrating that I took 100 percent of the risk and quit my job and now everything’s still the same. It feels like I’m having to drain down my life savings in order for large companies to save time and money in production. It creates an uneven balance, and I feel a burden of responsibility for what I’ve created and all the people using it. So instead of giving everything away for free and being taken for granted like I did with OpenFaaS, I put a cost on part of inlets, another project I maintain. It’s a Cloud Native Tunnel that can be used to connect any device behind NAT, firewalls, captives portals, even hotel WiFi to the internet with a public IP address.
A year later, inlets has over 6,000 GitHub stars and a commercial edition for companies and professionals. This method turned out to be a proven way to maintain a sustainable career in open source development. It might not be for everyone, but for me, the key is to complement open source with closed source software. And the idea isn’t to compete with the community. It’s to create something additional that’s more suited to those who are willing to pay.
Building a community makes it all worth it
I’ve struggled to find a way to fund my open source work and am often asked by business leaders why I haven’t given up on projects like OpenFaaS yet. But I’m an engineer, and engineers build solutions to solve problems, so I’m motivated by seeing those solutions being used and their communities grow. I remember reading the book, Before the Exit: Thought Experiments for Entrepreneurs, in which Dan Andrews opens with how he sold his successful business and went on to regret it. Despite getting the money he wanted, he lost his platform for ideas and creativity—and the community that came with it.
While it ebbs and flows, the OpenFaaS community is a big and consistent positive. I appreciate having a group of people around me that helps, contributes, and acts as a sounding board. I like being able to reciprocate and help them in their lives and careers. My open source work now also includes inlets, derek, k3sup and newer projects like arkade, which is a Kubernetes app installer. It feels like we have a little software incubator going with complementary projects and an intersection of community, techniques, and skills.
With OpenFaaS especially, it’s important for me to make it feel like a team by building relationships and having Zoom calls. I regularly check in to see how we need to improve, and what we can do to get more people involved. Having 10 one-on-ones over five days when I could be doing business work is expensive as an opportunity cost. But I’m happy to connect with everyone and spend 50 pounds a week sending swag because it builds this real sense of community. They get a sticker and take a photo, or wear the t-shirt and smile at work. There’s a real nice feel to it.
Meeting one-on-one is crucial for building trust and loyalty, and there’s nothing quite like getting feedback from those who contribute to or use your software. In the beginning, people don’t really believe you want feedback. But if you keep asking, they’ll eventually share. It might be a bit awkward, but if you can take it at face value, learn, and adapt, your relationship will improve.
One of the books that helped me was What Got You Here Won’t Get You There by Marshall Goldsmith. I realized that despite my initial success, a couple of habits were holding me back. This book helped me recognize them, and learn how to ask for feedback in a structured way. People are and always will be different from each other. So it’s important to be communicative and open. We’re all figuring this out together.
Right now, I’m focused on pivoting away from pure open source and working toward building a more sustainable software and consultancy business, which I discussed in my 2020 mission update. It’s really risky and difficult to be independent, but it’s also rewarding—and ultimately, I’m doing this for the community, for OpenFaaS, and for all of you.