To Open Source or Not To Open Source? That Is the Question

At some point in their engineering career, nearly everyone builds an internal tool and thinks that it would make a good open source project, but quickly gives up on the idea due to lack of knowledge on how to do so and fear of its overhead. Having experienced this myself, I decided it was time to pave the way in our organization and enhance our engineering culture by creating our first real open source project from a highly useful tool we created that others can benefit from.

As this was the first time we (and I specifically) created an open source project, I had no prior experience or clear guidance on how to do so. But who wants to stay in their comfort zone all the time, right? I must admit that the effort of making this happen was not that big of a deal, the main things we had to do were:

  • Extract the code to a different public repo, post it to PyPI and use it as an external dependency (requirement) within our code base (this is a Python open source)
  • Create a dedicated CI flow (in our case CircleCI), that will also publish new versions to PyPI
  • Write a good README explaining what this framework is about, its API and how to use it (with clear runnable examples)
  • Add a standard legal license and contributor agreement with the help of our legal (as it was published under Optibus)
  • Move to use GitHub Issues instead of our internal Jira projects

That part was relatively straightforward (it took me only a couple of days), however, getting external traction for your open source is a different story and it is something that I regret not putting enough emphasis on. In order to get traction, clearly you need to have created a framework that addresses a real common pain that many can relate to and benefit from. But, no less important, you will need to have a “marketing” strategy.

A strong marketing strategy requires a solid online presence to spread the word, or promoting it through people that have such a presence. You should try to use your network as best as you can to make it visible to others. You should write posts in relevant forums, blogs, promote it through podcast interviews, etc. You will probably need to put as much effort, if not more, into this part as you have into converting your project into an open source.

So don’t be afraid to convert your work into an open source! But if you want traction, know that you need to work in order to make it happen.

And if you ever need to record and replay operations from your production environments, be sure to check out the Playback framework (always be promoting).

--

--

--

Founder and CTO of Optibus

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

How Classes and Methods Work in Ruby

Software Development Craftsmanship with Java-> DevOps

RAPIDS | NVIDIA Setup on Windows 10

Salesforce 2GP — Share a single namespace with multiple packages

How to host a Solana NFT bot on the Akash Network (No code)

Flutter CodePen challenge

My First Coding Review Experience

How to Monitor Klever Node

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Eitan Yanovsky

Eitan Yanovsky

Founder and CTO of Optibus

More from Medium

Quantifying Latency at Scale

LOG MONITORING ON PRODUCTION

The Fallacies of Distributed Computing — The Network is Reliable

Mining through the Pipelines