I chose to open source it because I decided ultimately it was way more of a niche business than I wanted to be in, and I wasn’t convinced it was a money maker. I figured maybe I could help some people who needed it.
I presented it at a major hacker conference; the same year Edward Snowden was the keynote, that was very cool. So what happened after that? I think it went from having 1 to 4 stars on Github (and zero forks). I’ve never heard of anyone using it. It’s there if anyone wants it. How do I maintain it? If I find a bug that bothers me enough, or an OS compatibility issue comes up, I fix it. These days I only really maintain compatibility with Linux and only a dedicated hardware mode, that uses an Arduino to get foot pedal inputs for mouse clicks.
This can’t be an uncommon scenario, you make something cool, release it, and all you hear is crickets. The software was always single-purpose: a tool for me to do my work. Without being hyperbolic I can say it literally saved my career. One other unexpected side effect: any job interview in which I’ve gotten far enough to talk about this project I’ve gotten an offer. I don’t think the code is that amazingly clean and it’s not solving an impossibly difficult problem, but there’s something to be said for making stuff that actually works and having the entire code base visible for review.
It is my hobby project, whenever I learn some interesting implementation techniques used in other projects I use it in my tool. There are no users for my tool so there is not much maintenance work going on. I usually try to implement ideas that I get and make it as part of the tool's features.
For every idea I start with pen and paper and then into implementation of it. I'll make sure I wouldn't bring in complications so I'll take few weeks for the idea and technique to implement to be strong. Whenever I get free time during my office hours like release is over, or I'm on a leave or I'm blocked I'll make tiny changes. Whenever I get a long break from office like long weekends, I'll spend a productive time with it.
Usually I take breaks and do not try to implement that is hard for head. If something feels smooth, I'll jump in to implement it.
The project started from a work need; as a consultant, it was a daily task to switch from a cloud account to another, and I was looking for a secure and easy way.
The project grows rapidly, and I'm looking to add support to the solution for the enterprise that is adopting the solution at the company level.
In the community, I've had some requests for troubleshooting and bug prioritization and granting a certain level of continuity. I think that a support option for the enterprise is the best option.
So, lately I tried to focus on bigger challenges and set up companies to handle the os project. My passion is security which I think should be more open. Cryptography is pretty much open nowadays (meaning everything we use crypto-related is likely open), but many other areas in security are not, e.g. authentication.
First project SoloKeys: https://github.com/solokeys/solo
An open source security key, FIDO2 certified, open hardware and firmware. Profitable, revenue selling the hardware + kickstarter campaigns.
Second (newer) project Saasfrom: https://github.com/saasform/saasform
A modern auth system for SaaS, with teams & payments. Revenue will come from cloud solution. Just started, onboarding the first beta customers.
https://www.firstcontrib.com - This is a website I built so users can easily find personalised issues to contribute to.
Another one would be https://github.com/krishnanunnir/rmm. Which is a telegram bot server you can run on your machine along with a telegram bot to remotely grab screenshots and linux commands on your machine from your Telegram app.
I made it open source because I wanted it to be part of my resume.
The project is small (around 1 kLOC) and hence is easy to keep active.