Get ready for another open source story.
Robert Hodges, CEO of Altinity, discusses various important aspects of open source software development. He talks about the decisions every company should make before embarking on an open source journey, the unresolved issues within the community, some interesting predictions about the future of OSS, and a lot more.
This blog post highlights some of the topics discussed in episode 86 of the Level-up Engineering podcast hosted by Karolina Toth. Be sure to listen to the full interview on your favorite platform or watch it on YouTube.
This post covers:
I’ve encountered open source programs back when I was first learning how to use a computer. I remember IBM charged for the hardware, but not for their operating system that ran on it. I got involved in the modern open source community in 2006: I started working at Continuent, and we ended up creating open source software ourselves, because it was the easiest way to get a head start in the market. Users were open to trying new software because it was free.
The biggest difference between the early era of open source and the current one is the fact that we now have global networks that allow people to communicate with each other. Back in the days, you couldn’t just have a Zoom call - if you wanted to communicate effectively with others, you had to go and meet them physically. Similarly, if you wanted to transfer software, you’d write somebody a letter, asking for a copy of their work, which they’d put on a physical tape and mail to you.
By the mid-90s, the World Wide Web had become really prominent with browsers such as Mosaic. At that point, having websites that allowed people to talk to each other became very popular. These changes enabled people to finally collaborate and make software accessible for everyone to download.
I’ve written a lot of code throughout my career, and I personally find it very motivating to publish my work in a way that makes it eternal. Once you make something open source, it will always be out there and no one can take it away from you. It’s great to know that you’ll always be able to find the code you’ve been working on and will never lose important pieces of work.
Businesses pursue open source because it’s an incredibly effective way to develop software. Think of the Linux operating system: it has thousands of contributors who work together and are able to add to the code that makes Linux the blockbuster that is today.
It also turns out to be incredibly powerful to be able to work with distributed groups and to share the software you’re working on. You can build something and let people use it immediately, without any barriers. This will help you get immediate feedback on your work to make it better.
Interestingly, sometimes the people who are working on the software in open source are exactly the same ones who are using it, which solves the single biggest problem in our industry: building something that people actually need.
A lot of valuable pieces of software have started to become more closed. This change is mainly driven by economics: something as simple as the rise of interest rates can be a large contributor to this phenomenon. Five years ago, if you wanted to buy a house in the U.S, you’d pay around 2-3% on a loan. Now it’s 6-7%.
This starts a domino effect: it becomes increasingly harder for businesses to raise money. Companies rarely receive hundreds of millions in venture capital to develop a bunch of open source software at the beginning of their journey and worry about making profits later on.
Nowadays, you get a much smaller amount from investors, and you need to be worried about profitability right from the start. This means that the big open source projects need to be put on hold. Businesses have to have a clear strategy on how they’ll make enough money, which will lead some of them to change their current software licenses.
The main ideas of open source (such as developing in distributed teams, giving software to your users and letting them tell you what their needs are or letting your users contribute to the software) are here to stay. These aspects won’t change, because they make software development a lot more productive, and the end product will be much more useful to people.
Releasing your software openly and letting people do anything they want to do with it definitely scares some people. Maybe it’s less of an issue for developers who are just writing a piece of code - as an individual, if someone finds my work useful, I’m pretty happy about it. However, when businesses make their software open source, they might worry about others using it to build a competing product.
The problem is, open source software is typically licensed in a way that you can do anything you want with it. You can build a new business out of it, competing against the people who wrote the code in the first place. This can cause real tension, and it’s not fully resolved at this point within the community.
To grasp this issue from a philosophical standpoint, Cicero claims that there’s never a conflict between your own interests and doing the right thing. If you shape the problem the correct way, you can do the right thing, and that can also serve you at the same time.
In the same way, the companies that work in open source have to think ahead how they’re going to make money. Releasing a bunch of software is one thing, but to make money, they might be tempted to make their products private again so customers are forced to pay for them. This solution has its own problems, too: you might pull away the software from people who actually contributed to it while it was still publicly available.
Open source is wonderful, but you need to think ahead and know how you’re going to make money. You’ll need a business model right from the start and ensure that your ideas are viable. This is a crucial step, because one of the challenges of open source is that it’s really hard to get people to pay.
Open source has already changed a lot, and will continue to do so in the future. It has evolved over time, mostly due to economics. A lot of companies will realize that if they want to be profitable and repay their investors, simply being open source without a plan is going to be a challenge. They may pull their products away from open source or introduce “less open” licenses, which, for example, won’t allow others to use their piece of software to build a competing product.
There’s a huge debate going on within the community because of this. The original open source licenses were developed by people who wanted to share and access their work freely forever. For this reason, the early open source licenses were designed so that you could use the software, but if you changed it, you had to give your changes back, ensuring that the product remains free regardless of how it evolves. For a lot of people, that is the only form of license that’s acceptable.
There are more restrictive licenses as well that allow users to use the software for anything they want, but they can’t build a competing business with it. This relatively new form is called a business source license. These changes are beneficial for the businesses that created the software, but not so much for the businesses that use it. People like open source because it gives them access to rapidly evolving technology without restrictions.
Another issue in the open source community is security. In our case, we’re using a database called ClickHouse, which has a core of tens of thousands of lines plus a lot of other software interacting with it.
When you look at the software as a whole, there are millions of lines of code we depend on, and it’s all open source. So who ensures that all that code is secure? Anybody could attack this database by, for example, simply changing libraries. The problem is, there is very little central oversight to the changes being made in open source software - it’s up to the individual projects to determine whether each alteration is positive or negative.
The problem of making open source software profitable ties in well with the security issues. If you give your product away for free, people are never going to pay for it, and you’ll be less motivated to invest in costly security processes until there’s a major breach that could lead to a lawsuit. Unfortunately, other than being a good person, these are the sort of events that will force people to be more careful with the open source software they release. Ideally, the whole community should be focused on ensuring that security problems don’t come up in the first place. Sadly, there is no easy technical fix to this - some technologies can scan open source software, but they’re also expensive and take time and work to apply.
The question of introducing stricter rules also divides the open source community: there are some people who see open source as fundamentally good and they don’t think that rules and regulations are necessary. Others see open source as a purely economic mechanism to develop software and to market it to their users.
These differences make it even more difficult to make decisions about how certain pieces of software will be used and regulated. We’re seeing the same problems with AI right now: people are talking about regulating AI, but they can’t even agree on what it is that should be regulated. That makes it hard to pass sensible laws - we need to understand the dangers very well before we try to protect ourselves from them.
A very important societal mechanism that helps people make informed choices for open source software are foundations. You can have software that’s owned and developed by a single company - as long as that’s the case, you’ll have no guarantee that it’ll remain open source forever. The company could face all sorts of changes that would push them to change their product’s license: financial challenges, a new manager with different ideas, anything. They could face serious moral dilemmas, such as either laying people off or increasing prices to stay afloat.
You can avoid getting in such tough positions by putting your software into a foundation. For instance, Linux is not owned by any single company. It’s the property of the Linux Foundation. Companies can contribute to the software and build products that are based on it, but Linux itself is open and free for everyone.
By choosing to put your software into a foundation, you’re making a powerful statement - you’re telling the world that you put your work out there for common good, and you’re willing to let customers access it completely freely, no matter what.
Of course, foundations have their own imperfections as well. They involve lots of bureaucracy - each of them has its own politics. Being in this setup may slow things down, too: you might have to deal with a bunch of people before decisions are made. Foundations can also get expensive: you have to pay lawyers, administrators and other experts.
It’s certainly not the right model for every piece of software, but for the ones that are crucial to society, foundations can grant the best of all worlds. It’s the solution for making sure the software is free and also properly managed to fully benefit its users.
If you’re relying on a bunch of different software for your daily operations, you must consider where it’s coming from and what would happen if it were to be taken away from you. For example, we use a certain piece of ticketing software for processing support cases. We recently got an email stating that based on our address, our company is in a country their services won’t cover anymore.
It turned out to be a misunderstanding which we could settle, but the situation made me think: if you’re using proprietary software, it can be taken away from you anytime. That can mean a lot of things for your business. Open source, on the other hand, gives you choices and the ability to move somewhere else and do your activities regardless.
Lastly, think about teaching the people that follow you. Everything you do, someone taught you and made it possible for you to reach the position you are in now. Turn it around and pass that teaching on to others.
This is partly what open source is about, too, but it’s true to any profession. Give people the same chances that you had.
Robert is an entrepreneur and software engineer with a diverse background of engineering and management roles. He encountered programming first as a high schooler and later started working as an operator. He began working with databases in the 80s and has been in this field for the past 41 years.
At Apex Lab, we're experts in end-to-end digital product development. Our remote-first company operates with a flexible schedule, allowing us to help clients tackle difficult challenges worldwide.
Want us to build your next idea or upgrade your existing product? Our experts cannot wait to work with you. Get in touch with us and let's make this happen. 💡🚀