Open Source

I started Tobeva Software in April of this year and one of the first opportunities to come my way was a contract working for The Chan Zuckerberg Initiative on an open source project called Napari.

I started Tobeva Software in April of this year and one of the first opportunities to come my way was a contract working for The Chan Zuckerberg Initiative on an open source project called Napari.

Napari is a multi-dimensional image viewer written in Python for the SciPy community. Napari is used by Neuroscientists and Biologists to view and analyze complex image data. SciPy is a thriving ecosystem of Python software used for mathematics, science and engineering. SciPy is healthy part of the surge in popularity of Python over the last few years.

The Napari multi-dimensional image viewer.

In my career I’ve mostly worked for commercial companies developing proprietary software. It’s been a lot of fun to learn the ropes of open source, it’s refreshing to be developing in the open and seeing how open source projects are run and how their contributors coordinate and collaborate with each other.

One thing that’s great about open source is you can send GitHub links to friends and colleagues to show off your work or ask for input. This is the polar opposite of the proprietary world where essentially everything is “secret” even the mundane stuff that does not at all merit being secret.

Another nice thing about open source is knowing you’ll have permanent access to the code that you are writing. If you leave a company you generally leave behind everything that you wrote for them. With open source if the licenses are compatible you can grab your old code and throw it into a new project.

Finally this might not always be the case, but with Napari the contributors are mostly power users of the software who are highly invested in its success There is no real boundary between the developers and the users, it’s more of this nice continuum. There’s far more of a community than in some commercial efforts where you are more or less throwing the code over a wall to users you may never interact with.

Related to this it’s amazing how people from different projects interact. Developers for packages we depend might lurk on our chats and chime in with helpful advice. Meanwhile many Napari developers contribute to upstream and downstream dependencies. Even when I file issues on projects unrelated to ours I’ve generally found super helpful replies from their core developers within hours.

Not everything is fun and easy with open source. It can be a challenge to get everyone on the same page when they are all coming from different organizations. People’s time commitments to the project vary widely, some people are monitoring the project but not really following everything very closely, and they might seem to be out of sync at times. However even those only partly paying attention to the project are still welcome, having some attention is much better than having none.

After so many years of commercial development I find the open source model to be exciting and productive. I think commercial software still has a place, but there are some strong benefits to open source. I’m eager to work on more open source projects in the future and I’m hopeful that Tobeva Software will soon host some open source software of its own.