Q What kind of open source technology deployments do you have at redBus.in?
Purely from the open source perspective, we use a lot of Java, which is a classic open source language, for both the platforms in our b2b business. Apart from that, we use a lot of open source NoSQL technology, which includes names like Redis, Cassandra and Neo4J grass database, the last of which we use when we want to bring out certain things quickly. We also keep experimenting with a lot of systems around caching and serving. We have played with technologies like MongoDB and Redis Cache. For queueing mechanisms, we use RabbitMQ, which are memory queues that allow us to process the data in a particular fashion. However, there is a small part of our business that still runs on proprietary technology, primarily around .NET.
Q Can you tell us something about the b2b platforms you have?
We have two b2b platforms. One is focused on the bus operators, that is, the businesses. We call it redBus for Businesses. The early name for this was BOGDS. This is basically the ticketing and inventory management system for the bus operators. They use our system to configure, manage their inventory and find out the route on which the bus travels. They can also use the platform to provide APIs to other partners. The second product we have is called Seat Seller. This is an agent business platform. If you were to travel, say, from Delhi to Jaipur, you can buy bus tickets in three ways. First, you can buy them online. Second, you could go to the bus stand, get into the bus and hope to get a seat, or, third, you can go a day early and buy a ticket at one of the agent shops. These are called travel agents or ticketing agents. We have a product called Seat Seller, which these agents use to book seats for customers who reach out to them for buying tickets. Those tickets are also bought off the redBus platform.
Q What technologies are these platforms based on?
Both BOGDS and Seat Seller use Java at the back-end. They use GWT for the framework and the front-end aspects. They also use the MySQL database and a bit of Redis for caching. This is the broad technology deployment structure at redBus.
Q redBus uses a lot of open source technologies. What are the advantages that you derive by using these?
Just to clarify, redBus started off by building everything on .NET a long time back. However, during the course of the last three to four years, we have seen large adoption of open source technologies. Primarily, open source gives us the flexibility to do things fast. If I were to use a particular proprietary technology, I would have to either build every component on my own, or purchase some licensed software. In the first case, I would require a lot of manpower, time and resources. I too was supposed to buy some licensed software, but the cost is usually exorbitant. This is one big advantage that open source brings to the table for redBus.
So, if I want to deliver something new, whether it is a new piece of technology or a process, open source allows me to do it really fast. If a particular process would otherwise take weeks or months to complete, my team can do it within much less time, thanks to open source technologies. The other advantage is that the support for this technology is really high. Lets say we are using a certain technology and get stuck at some point. There are enough people in the community willing to guide usthose who have already gone through the same problem and have a solution ready. This cuts down a lot on the time we would have spent to get to the bottom of the problem. So community support is the second major advantage that we get with open source technologies.
While open source software is well supported by the community, there are no restrictions on how you use it. You can always take out a piece of open source software, modify it to suit your needs, and use it the way you want. In case of proprietary software, you cannot touch anything because you dont have the source code in most cases. If one requires any changes in the proprietary software, one has to place a request and wait for the approval to arrive. So, there is an issue with proprietary software vis a vis open source technologies.
Q Does talent continue to be an issue when it comes to working on open source technologies?
Not really. There are two aspects to getting the right talent. One is, getting talent to work on specific technologies. This is difficult, unless it is something as popular as Java. However, having said that, there is enough material available on open source. So, as long as I am able to find an engineer who has the ability to grasp such technologies quickly by reading the material available, and is ready to experiment and ramp up quickly, specially in open source skills, I would be happy to hire him or her. For example, if we take the graph database, Neo4J, there is enough content and study material available for it. Just type Neo4J in any search engine and you will probably get hundreds and thousands of pages. So the risk of not finding a person who has worked on a particular platform reduces significantly.
Q Do you get the right kind of talent all the time or do you have to train people in-house?
When we look for talent, we do not necessarily look for talent on a particular technology unless it is something like .NET. What we look for is people who have the ability to ramp up quickly and who have the passion to be able to deliver fast. That is my primary concern when I hire someone. As an organisation, we have a large learning and development (L&D) team, which comes under the recruitment function. We have regular training sessions within the organisation. So, getting someone from within the company to work on a certain technology is easier than hiring someone from outside. However, our core functions are based on Java and getting Java professionals nowadays is not that difficult.
Q What are the challenges you face with open source technologies?
The primary challenge with open source technologies is not being entirely certain about support. What if the support for a certain technology is withdrawn? A few years back there was a framework for PHP. We started using it, and suddenly we heard that support for that framework had been stopped. Instead, they had started advocating Zend. So we had to give up on that technology and go forward with something more stable. This is one risk that comes with open source technologies.
The other thing is, while you can use open source, there is no accountability for it. If you are using a technology which is pretty new to the system and a problem occurs, then there is nobody to account for it. Lets say there is a bug in the system or a loophole, which may come out only under specific use cases. We have to work to patch that, else it can affect our production environment badly. In case of proprietary systems, there is some accountability, for sure.
While security is very high in open source because a lot of people work on it and usually the bugs are located early, there is also a risk that a lot of people know the technology, inside out. If they know what systems I am using, they can exploit a vulnerability that I dont know about.
Q When did your tryst with open source technology begin?
I have officially been a Java guy throughout. In my previous organisation, which was in the telecom domain, I used to write software in Java. Then I moved to Ibibo, where most of the software was being built on Java or PHP. In redBus, when I came in, a part of the system was on .NET and the remaining on Java. Some of these were moved completely onto open source. Our inventory platform is completely on open source right now, while our consumer-facing website, redBus.in, is still on .NET. Its an older system and we would like to go slow with that. Also, we have enough people to manage that system. So, we dont necessarily need to go and change that to open source unless there is a requirement for it.
Q So, if you had to develop an application afresh, today, would open source technology be your first option?
I prefer going the open source way, personally. My recommendation is always to look for a solution that is available on an open source platform, and to check the level of support being offered there. If there is something which is apt and is available in open source, we prefer using that. Apart from getting a lot of community support and other such benefits, there are definitely a lot of cost benefits that an organisation can enjoy, which is really important for us. There are two kinds of costs involvedthe development cost and the deployment cost. If I use proprietary software and require some proprietary tools for development, there is a cost involved in that. If there is a licence attached to it, that is an additional recurring cost for running the application. From a cost benefit perspective, I would like to go for open source.
Q What matters to you morea solution or an open source solution?
I think a good solution matters to me the most. The solution should be scalable. Whether it is built on proprietary technology or open source technology doesnt really matter to me at the CTO level. But, from a personal preference perspective, I would choose an open source solution, any day. As I said, there are a lot of cost benefits that come with open source technologies.