 All right, so I hope everyone can see me well and I hope everyone can hear me well. A small thumbs up in the chat would be nice if you can hear me well because this is also the first time that I'm using this. Perfect. Okay. Right. So, well, yeah, then let's get this started, I guess. So, first of all, it's a huge honor to be here. I really want to thank everyone. This is the first keynote I'm ever giving in my life so far. I'm very excited. I hope it doesn't show too much. Yeah, so, first of all, who am I in the first place? You already know my name. It's Gina Hoiske. I'm a 37-year-old full-time nerd, so to speak, software engineer by trade and by heart. Make a hobby baker and I have to add that the hobby baker thing is not a thing that started with the pandemic, but it's something that I actually did before as well. And I'm also the creator and maintainer of Octoprint and I would now, before I continue to talk about that one, I would like to know who of you has heard or used Octoprint, has heard or used about Octoprint so far. So, I'm going to give this some quick time, but yeah, it looks like the majority has not heard or used it so far, heard about or used it so far. English in the morning is tricky. Okay, so, yeah, well, then let's maybe explain first what Octoprint is in the first place so that you know from what direction I'm talking here today. Octoprint is a web interface for consumer 3D printers. Those things that these days you actually can buy in the hardware stores. It's an open source project licensed under the AGPL V3. Currently it has something around 100,000 confirmed users worldwide. I don't know an actual number because the usage tracking that I do is obviously opt in due to privacy reasons. So I don't know about you if you're using it or not unless you tell me about it. It's written in Python for the back end and HTML and CSS and JavaScript for the front end and you can find all about it on octoprint.org. And I wrote this thing out of an own personal itch to scratch because back in 2012 I got myself my first own 3D printer and found myself in a situation that it was now taking up space in my office introducing fumes and noises and all that and that was not that great to sit next to while hacking on stuff. So I wanted a way to control it remotely and this is when I sat down over my Christmas break and started working on octoprint. We are now looking at almost eight years of history of this project and the popularity was actually big enough that back in 2014. So six years ago already I was able to go full-time with octoprint. Back then I got hired by a company, a 3D printer company who employed me to work full time on moving octoprint forward. Then in April 2016 I had to switch to crowdfunding because they ran out of money and yeah so it has been a wild ride so to speak and it has been quite the adventure over the course of all these eight years. You see there have been a lot of releases which are these little green markers there. There has been a lot of improvement around the infrastructure and all that and yeah so it has been really an exciting time and I learned a lot about things in the meantime and I want to talk today a bit about the experiences that I had or rather the lessons that I took from them. So what it is like to run an open source project for eight years of your life and six of those full-time and also how it is to run an end-user-facing piece of software for so long because yeah octoprint is actually targeting your run of the mill 3D printer user and those are not necessarily developers and I will also talk about that a bit later and what that means for what what indications that has. So yeah and I'm going to talk about the good, the bad and the ugly that I experienced. So let's dive right in I guess and start with the good. So obviously when you're working on your own software project this long on your own open source project for this long it is your project. What does this mean? Well it means you can shape it. It's your vision that you implement. You do not have to trust anyone else to make decisions for you. You do not have to give away control and all that and you do not have to face what I would like to call politics driven architecture which is something that I experienced within my former life as a corporate software engineer where technical and architecture decisions are made based on internal department politics sometimes and not on what is the best choice for this particular problem that we are facing here. And also very important obviously is you work on something that you you work on something that you actually use yourself and that you enjoy using yourself and I have right next to me here I have like two printers that would be up and running if I was not giving this talk right now. I also have a laser cutter back there that runs the Octoprint as well and yeah so I use my own software daily or more or less daily and this is a really really great feeling and this is something that makes working on an open source project even for that long very very enjoyable. Another thing that makes it very very enjoyable is the fact that you help people. So this is also something that I really really enjoy and that I have come to cherish as a really important part of my day-to-day life is people have problems and you help them. You help them solve their problems. You enable them to overcome their problems by providing them with a solution and sometimes they even say thank you. I get the occasional email here and there or just a tweet in the morning or something like that that just says thank you and that makes all of the bed and actually we will be talking about later so much worth it. I have gotten a lot of feedback over the years and one of the most funny ones that I ever got was a guy who messaged me and told me that I saved his marriage because he was spending so much time with his printer in his garage all the time because he had to babysit it basically and the wife and the kids were not amused and then he installed Octoprint and then he could get back into spending time with them and just sneakily keeping an eye on his print while doing that so yay that's not something you hear every day and especially not in non-open source work I think. And another thing that is very very dear to my heart and a huge advantage of working on an open source project for this long or even just working on open source in general is you learn tons of new stuff so I'm not just talking about software development itself obviously my coding skills have increased ever since I started working on Octoprint I constantly learn new libraries I constantly learn new tricks up my sleeve I learn more Python I get more proficient in this stuff but when you run a project like this you also need to learn about project management you need to learn about community management and how to manage your communities expectations how to give them a forum a platform to exchange things exchange ideas exchange solutions helped each other stuff like this you have to learn about release management so it's not just that you throw code in a guitar repository and people then pull it in and everything is fine and dandy and works but at some point you will realize at some yeah at some after some growth of your project you really need to put out stable reliable builds that you can reproduce and stuff like this so yeah that is that is all that comes with running such an open source project and talking about release management you also learn the value of release candidates when you suddenly find yourself in on a Saturday morning trying to frantically fix a buck in the stable release you pushed out on Friday and and you also learn how how bloody tricky it can be to get people to actually run release candidates which comes back to community management where you need to try to incentivize people to help you run the project because you can't do everything on your own and yeah in case of octoprint there was also a bit of brand development involved so I need a funny little logo I need some corporate identity and all that so that things get read recognizable so yeah you learn not only about software development when you run such a such a project and I have to say that I really enjoyed that if you like learning running an open source project is like a full full overdose of learning but as I already hinted at yeah it's not all fine and then you sadly there are also some bad things that you will have to face when doing this and one obvious big point probably for most of you is the work life balance situation especially if you run a project like octoprint or even something smaller as a side project next to your own full-time job it can become a bit much it can become really hard to shut off and recharge and you really need to learn to be very protective of your private time for example with octoprint you saw on the on the on the on the timeline the first two years almost I did it next to my own full-time job so after 40 hours per week of regular work I then had to I then also try to shoulder everything that I had to do with octoprint during my after hours so right after work on the weekends during vacation and not only was that something that friends and family did not find particularly funny after a while but I also noticed it so I noticed a negative impact on my health and on my motivation as well and so this is something that you need to always keep an eye out in my personal experience because no one else will and yeah you need to take breaks you need to make sure that you do not spend all your time all your waking time in front of a PC and code away on your on your pet project or on your full-time project it it will break you long term so if you can do that for a while but you should have a plan B in order to get away from this mode and another bad thing sadly is pay no one likes to talk about money but we like having it in order to be able to pay our bills and yeah asking for donations on an open source project is is still a bit tough you it always feels a bit weird so here is something for free but also please give me money don't ask me what that was what what kind of discussion that was with my tax consultant and it also usually doesn't scale so usually what you get when you ask for donations on an open source project will not be enough to pay the rent it's it's more like beer money as some people would call it and thankfully I found that yeah with octoprint I faced the situation back in 2016 that I had to go donation based and crowdfunded full-time and I realized that if you really make it transparent how much work an open source project can be and how much work you're actually putting in how much of yourself you're pouring in so to speak and if you have a somewhat stable user base then it can actually work and in my case so far it is working and it's definitely working better target targeting I feel a bit bad using this work but targeting end users rather than companies in my experience weirdly because yeah companies always have this capitalistic approach of what do I get back in return and the software that you're using gets maintained for the foreseeable future apparently doesn't seem to suffice for them as a as a reason to give you money but yeah and so in order to be able to make this a viable approach financially as well to work on an open source project from my personal experience and I do not say that this is a general advice that is applicable to everything a single project out there but it worked for octoprint and its target audience is you really should make it easy for people to give you tiny but recurring tips so do not ask for a please give me a one-time payment of 20 or 50 or 100 or something but rather make it possible for them to give you one dollar per month or something like this because if you get 2000 or 3000 people doing that it quickly it's up and in order to do that you should also offer them yeah there are various ways to do so so we have these days we have github sponsors there's patreon which is still what what octoprint primarily gets funded with there's library there is donor box there is paypal obviously for one one-time payments at least in germany or you can do one-time payments unless you have a business account for let's not dive into these details but still yeah it's a bit you should give them choice because if people do not like patreon and you only allow patreon then yeah well then you won't get this donation so yeah that has been my experience in that regard and the final bad thing solitude especially at the start of your project you will be doing it alone and in the case of octoprint funnily enough I still mostly do it alone and the thing is that people are really fast to request features but slow to contribute them so it's easy to say hey it would be great if octoprint also did this and that but actually making it do that and not only making it do that once but then keeping that functionality maintained through the years that is hard or at least it is trickier or or more work than just saying hey would be nice and yeah so the thing is from my personal experience is you should make it easy for people to help you but without having to then maintain whatever they edit so something like a plug-in system can go a long long way here all right and now while we are talking about the bad things let's go to the ugly things and yeah there are sadly some entitlement it attacks this is something that I fear a lot of you have seen in the open source space you have users that want something immediately done and who treat you a bit like your that like the personal slave or something like this people shaming you for pushing a release because it contained a bug and yes these are all things that I've actually heard people who outright insult you and I do not want to talk it won't do not want to collect examples of all of this here but yeah in the problem is people like this can really ruin your day has an open source developer and the important thing to to remember here at all times is really yes those are vocal and they can ruin your day but the silent majority who is happy with using what you put out and who is grateful for what for the work you do is there and they may be silent but they are definitely the majority and this is just something that you have to keep in mind and what you also have to keep in mind is in my opinion a lot of people would tell you well this is just yeah this is just like it is in open source and you just have to grow with the skin as a maintainer and I do not agree with this I have to say I think we should just as maintainers we should say nope this is a boundary that I'm not allowing you to cross and the other thing that you might face is licensed violations some company stealing your code and and or you're just thinking that maybe some company stole your code and yeah this is something that feels really really bad I have not had definitely happened that I have not definitely sorry my English is just confused right now I haven't definitely have that happened with Octoprint so far but I've had some cases where I suspected that someone was using my software internally in their product without actually adhering to the license and the thing is I could have tried to figure that out I could have tried to track them into a legal battle over this got myself a lawyer pay the lawyer with the limited amount of funds that I get and all that and try to publicly shame them something like this but if it's just a sneaky suspicion from my experience I'm not sure if it if it's always worth that so what I'm trying to say here is choose your battles wisely license violations suck license violations are something that are really fully against the nature of open source but on the other hand if you're a maintainer if you're a loan maintainer especially then you cannot fight all the battles out there so if you have the possibility to outsource this to something like gplviolations.org or something I don't know then maybe do that but try not to get worked up too much about this as well from my personal experience usually it's simply not worth it because your product is still the popular one and yeah so and the final ugly side of things and something that I guess all of you have also faced one time or another during your life is the risk of burnout so we've seen there is a lot of stuff that you constantly have to learn there's quite a number of things that you have to worry about payment work life balance and all of that and on top of this there are also the ugly sides of things entitled users personal attacks insults that you have to face gpl violations and stuff like this and that yeah that can really really weigh down on you so burnout for open source maintainers is a real threat and I would be lying if I said I have not faced it in the past and what I would really recommend here is if you do regular open source work or just if you work in general but especially if you do regular open source work really keep a close eye on your own mental health and your own physical health learn to spot warning signs of burning out like increased apathy or irritability in general not feeling all there or feeling like everything sucks and all that because yeah this is a this can spiral out of control quickly and you do not want that you do not want to burn out on your open source project because as we saw it is a work of passion it is something where you help people it is something where you learn so much so it would be a real pity if due to other factors you burn out on it and cannot do it anymore and for that it is really important to know that you do not own anyone anything when you work on open source you give away you work for free you're helping people for free and this is already what they are getting from you they cannot demand from you to never take vacation days or never have a weekend or something like that so you should not either and you need to take care of yourself because no one else will so what is really really important here is you need to learn to say no as an open source maintainer no to this feature no to this bug report and also no to this discussion yet again about the topic that you've talked about endlessly or just something that is currently not something that you have enough spoons to to tackle and yeah this these are the ugly sides the question of course is with all that that negativity that we just talked about would i do it again would i go all this would i do all this journey would i go on this adventure again and the answer is a is an absolutely resounding yes it is a very very wild wild right i have learned so much i have so many good memories thanks to working on octoprint and i'm still making new ones um it is yeah it is something that is very humbling but in the at the same time also something that allows you for so much personal growth and also professional growth and it is it is really rewarding as well especially when you get these tiny mails or tweets here and there that say thank you and so i would absolutely do all of this again i would probably change some things here and there because i learned a lot which i would put a good use but i would totally do it again and with that i just want to thank you for your attention i hope it was interesting if you have any questions that would not be able to cover here anymore you can reach me on twitter via futile and i will also put the slides up on octoprint.org slides later on and with that i just want to say thank you