Also on The ReadME Podcast
From a 3D side project to the dream job
If you asked me 10 years ago where I would be now, I would never guess that I would be the full-time maintainer of a popular open source project.
It all started in 2009 when I went to a hacker camp in the Netherlands and they had a room of 3D printers. I’ve always been interested in anything connected to technology, and this was fascinating: You could create something out of thin air! In November 2012, I finally got one. It produced a lot of noises and fumes, and often took hours or even days to finish a print. At the time, 3D printers didn’t have internal storage, so you had to tether it to your PC, which was annoying. I wanted my desk back.
I thought it would be so nice to put it in my spare bathroom and monitor it remotely. I wanted to make sure everything was working but without the constant noise, fumes, and interruptions. There were solutions that treated a printer like a black box, but none of them had a feedback channel. So you could stream to it, but you would never know if the printer was actually running.
I was still employed at a big corporation as a software engineer at the time, so over the course of a week during my Christmas break, I wrote the first version of what is now OctoPrint. It was a basic web interface with feedback functionalities and webcam support. You could upload files and monitor the progress of the print job no matter how long it took. You could control the movements individually, if you wanted to set something up beforehand. I threw it on GitHub and added the link in the Google Plus community, which was pretty big on 3D printing back then.
Then my email inbox started to explode. Apparently, what I wanted was something a lot of other people wanted, too. It didn’t even have a name, but suddenly I had this huge open source project on my hands.
The rollercoaster ride to full-time
I worked on OctoPrint next to my day job after hours, on weekends, and during vacations. It grew and grew and grew. In 2013, I talked my boss into reducing my contract at work to 80% (with 80% pay), and was able to dedicate one day per week to maintaining it.
At the beginning of 2014, I realized it was too much to do on the side. At that point, a Spanish company who produced 3D printers said they wanted to hire me full-time. I’d be self-managed, and get paid to do what I was already doing. It was the dream scenario!
The project really gained momentum because I was able to implement some of the larger features that I never had time to do previously. Everything was going great. But then the company had to make some changes in the first quarter of 2016 and withdrew support for OctoPrint. So I had this huge open source project with a vibrant community and an ecosystem that had been slowly growing—but no clear path forward.
I started crowdfunding. I did Patreon, PayPal, Liberapay, and Donorbox. It’s not the easiest or most sustainable system, but over the years, it’s grown to about 2,000 regulars and lots of one-time donations from just about everywhere. I was able to add GitHub Sponsors, too. When people ask me which of the funding platforms they should use to sponsor my work, I recommend GitHub Sponsors if they want everything they give to go directly to me. The zero fee model is a gift.
In fact, with the support of the community funding my open source work, I have surpassed my previous salary. I would call it competitive. I could probably make a lot more with my CV in a “normal” job, but I’m not doing this to get rich. I’m doing this to be able to afford working on open source, and that has worked out so far. I’ve learned that you constantly have to sell yourself and remind people that they can support you—that skill still doesn’t come naturally to me.
I have to admit that I did not expect it to work, but I knew I had to try. And thankfully, enough people put their money where their mouth is with OctoPrint. At first, it was just a pet project. Then, in 2014, it became my full-time job. Since 2016, it’s been completely 100% crowdfunded. I work on OctoPrint full-time, and the whole community comes together and makes it possible for me financially. It’s amazing.
Debunking stereotypes and making the invisible, visible
As OctoPrint came into its own, most people assumed I was a man, and couldn’t even fathom the idea that I’m a woman.
In the beginning, when people referred to the OctoPrint developer as a “he” on Reddit, I would correct them. Other people have started doing that for me, which is nice. I’ve also learned to draw boundaries. When someone refuses to stop misgendering me or questions who I am, I tell them: “I’m happy to educate you and broaden your worldview because you’re wrong here. Either you take it or leave it because I won’t accept you treating me like that.”
Of course, this takes courage. And when I was younger, I did not have that. Before my open source days, I had to make a point to stomp on the ground and create a presence. You have to stand up for yourself because no one else will. And even if others do stand up for me, people need to have respect for me as an individual, not the person next to me who told them their behavior is out of bounds. We want allies. But we don’t want men to talk over us.
The invisibility of female maintainers really harms open source and open source diversity. So I try to take every chance I get to say, “Hi, I’m here. I’m an open source maintainer. I’m female. I’ve been doing this for eight years now. We do exist. If you just keep your eyes open and stop assuming everyone is male, then you will realize that there are way more of us than you think.”
Knowing and addressing the early signs of burnout
At the beginning, I felt bad if I got sick. I had quite a number of health issues, and was tired all the time. Some days, I couldn’t lift a finger for a project that I really love. But I realized this is my job and if I want it to stay my job, I have to make it a good job. That means monitoring my own mental and physical health. Knowing the early signs of burnout and taking necessary action is very important.
Outside of work, I’m very protective of my time. My weekends are my weekends. My vacations are my vacations.
At the beginning of the COVID-19 pandemic, there was a huge drive to print personal protection equipment like face shields. My usage numbers spiked and so did the support requests, and I spent most of April and May hoping it would let up, but it didn’t. I knew I had to dial everything down to survive it.
Hobbies, in general, are helpful. At the beginning, OctoPrint was my hobby. Now video games play a larger role in my life again. Before the lockdown, it was rock climbing. I have a punching bag here in my office—and I’ll admit, it’s not just for exercise. It helps me manage some of the more frustrating aspects of being an open source maintainer, especially user entitlement.
It can really make you spiral into, in my case, a fit of rage. For other people, it might be depression. For a very long time, I was trying to suppress it. But you can’t just let this strong emotion fester and stick around. Now, before I reply to some harshly-worded email I receive, I let off some steam on the punching bag in my office. Then I can provide a more professional answer. I also posted a GIF of myself punching the bag on Twitter. Since then, people have been a bit more careful in triggering me.
Motivated by helping people, especially young women
The most important thing that really motivates me is staying visible as a female open source maintainer, and continuing to shout it from the rooftops. One of my favorite kinds of tweets or emails that I get is when people thank me. It’s not just when they tell me I did a good job, but that I’m a role model for young girls. That’s when I can really take a step back and recognize how far I’ve come—and that yes, I am making a difference.