DEV Community 👩‍💻👨‍💻

Discussion on: Pay your rent from open source 💸

stilldreaming1 profile image
still-dreaming-1 • Edited on

Okay, so the only reason I'm saying this is I recently said the opposite, so I feel compelled to correct myself. Even though I said I will not be releasing that Kotlin library as an open source project on my own any time soon, I actually might. The truth is I have been highly conflicted about this decision for some time now, and keep changing my mind. I thought I had a moment of clarity when I was typing that last reply when I first explained my decision not to, but it turns out no. When you think you have come to a decision, it sometimes helps to think about if you are really willing to stick with that decision long term, no matter how things play out, or if you would regret it. Depending on the decision, it might be okay to change your mind, but other decisions you may need to stick to. I was thinking, what if I donate this library to the company I work for, and they accept it, and then later they don't allow me to open source it? It would belong to them and them alone. I would not be okay with that, and would regret my decision. It might be better to just get it out there as an open source project soon. That would not really be forcing anyone's hand, I do have a history of releasing things open source, so it's not like I'm just being manipulative, it's just being real. This way if they don't let me work on this open source project on the clock, I can still do so in my free time, and there will be proof it existed before I started writing similar code for them. What makes all of this both a little tricky and kind of nice at the same time, is this library I made is actually just how I write code now. Even if they don't let me work on it open source, I would end up recreating something similar for them, because it is really just the way I think now when writing code. To say that one person owns it would be like saying object oriented programming is owned by one company, and they will sue anyone else who writes OO code. In a way that is nice because it gives me a legitimate way to write code like this anywhere. At the same time it could put me in a difficult place if I'm working on the same classes at work and in my off time, and I can remember the differences between them and I why I made the decisions I did. This would make it difficult for them not to become more and more similar, perhaps even identical. But that is also a line of reasoning I can use as to why I should be allowed to work on it that open source library on the clock, and why we should use that library for our work projects.
Another possibility I have considered is leaving it closed source forever, owned by me. I could then use it to develop closed source programs that I release as pay for apps or services. The idea is this library and other tools I build around it would give me an advantage in quickly building high quality, robust, almost bug free programs. I realize this sounds a little selfish, but if I made enough money off these, I would retire, and then would have more free time, which I plan to spend in a very non-selfish way. But let's say this worked out, and I ended up donating my free time writing code for a non-profit organization. I would end up wanting to use those same tools and libraries while working for them. So I guess open sourcing it now is the only way to go since I want to be free to use this library and other tools I build around it in my personal projects, and at any organization I work for.