Open Source == Business is True Story
How we got more business than we could handle by doing Open Source
Primary aim of this blog post is to highlight an important fact which is you can generate so much business by doing just Open Source. It’s our story and it could be yours too, just don’t be selfish and open source your code, please!!!
Disclaimer: When I say we know things, what I mean is we have a fair understanding of the subject and it’s being said in a very polite tone.
My journey with open source started with Josh software. Guys at Josh are passionate about open source and to express their love they later launched CodeCuriosity, a platform where one could get paid for their open source contributions. Read their FAQ’s section for more details. At Josh we were encouraged to do open source activities, contribute back to the community, by sometimes answering questions on stack overflow and much more. At that time I didn’t realise the potential of Open Source. Fast forward 3 years we are fan of open source.
Recently, Github published a comprehensive guide for open source enthusiasts who are new in open source or want to get started with open source you might wanna check it out. I highly recommend it for everyone reading this article.
In this post, I am going to walk you through our journey as open source enthusiasts and the path we chose at Aviabird Technologies.
Jan 2016 — Oct 2016 (Fintech times)
In Jan 2016 the team started working with a Fintech startup as their technology partners. Building this product was one of the most challenging projects we had picked in recent times. The team was expecting a good and challenging next 7 month.
In a nutshell, the project was about creating an intelligent layer between banks & end users where users can put their money to good use riding on existing mutual funds infrastructure. Read more about the product, strategy, and vision on their blog here. If it sounds interesting please check it out here. The team had such an awesome time building this product, After all, we love challenges and this was one of them.
Nov 2016 — Dec 2016 (Mission Angular days)
As soon as we delivered the initial version of Maxmywealth, the team working on it went on a 10 day vacation, the much-needed one after having spent 10 months working our ass off on the product. While working on this product, we were constantly hearing news about the latest avatar of angular (version greater than 1.x) and during this vacation, I sort of picked up Angular. Having nothing to do in the holidays, I spent some time playing around with it.
On the very first day after vacation, I presented to the team what I had built with Angular. It was a small application(code for the same application which later Pankaj Rawat perfected with his awesome animation skills 🚀) mostly CRUD in Angular 2. The team kind of liked it. I was thrilled to see everyone so excited. After that, I floated the idea of not picking up any new projects for business in next 2 months(Nov, Dec) and focus solely on becoming the experts in Angular 2. What exactly I said was this.
“To become the best in the world in Angular 2”
A big thing to say in the beginning, I knew that to be frank. I still remember a childish smile on my cofounder’s face Pankaj Rawat and I am sure Kartik Jagdale & Chandra Shekhar who are no less than co-founders would have thought the same. Is he really saying that? After all, who were we to say that, we’ve only been working for past 3 years in this field. We’ve known angular 1.x for a little more than 2 years. We’ve been working with rails for past 3 odd years.
The journey of becoming the best in the world started, we started by learning angular 2 from various links on the web, official documentation, and most importantly by coding and making things.
After we grasped the basic concepts of Angular we realised it was not good enough till you do it the Reactive way. Reactive way of doing things was first adopted by the React world. I feel very strongly and it has been advocated by a lot of folks in the industry that Angular sort of embraced all the good concepts from a lot of existing frameworks, not to mention from their mistakes with Angular 1.x.
Next, step was Observables and Redux approach. We were new to this the reactive way of doing things. It took us like 7–8 days to get our heads around it. we have heard many folks saying it takes time to train your mind to start thinking in Observables world. Here is a piece I wrote on Observables later as a part of the Complete Angular 2 series. Now, I just love the observables pattern. A lot of folks don’t which is fine, IMO one is free to pick whichever way one likes till it meets the purpose and the team know a bit about it.
By this time we knew Angular & Reactive way of doing things and if I remember correctly the date was 5th December.
At this point, I had another suggestion for the whole team.
Time to put knowledge to use, Projects for all 4 of us!!!
The team liked it. All of us decided to think of what we wanted to work on for next month(December). Listing below what all of us came up with as our personal projects.
- Ashish Singh — A simple tax saving(code) calculator for ELSS category.
- Pankaj Rawat — A Pinterest platform(code) for bloggers.
- Chandra Shekhar — A platform for travellers(code) for sharing their experiences
- Kartik Jagdale — An application(code) for managing twitter lists.
The idea was to build these applications by December itself. At this point, I have to confess I only worked on tax calculator for just 2–3 days. I was excited about what Chandra Shekhar was building. So, I quickly hopped onto it and started contributing to Yatrum.
We worked on these projects in December and kept everything open source. We were also amazed at how we were finding everything so simple. For example, we heard so many folks complaining that the learning curve for Angular 2 is steep, especially the redux pattern/approach. I started wondering, either we were doing things the wrong way or we were actually smart enough to figure a lot of things about this latest avatar of Angular which other people couldn’t. Turns out we were not doing things the wrong way. I feel so good while I am saying this because at a point in December I was under the impression that we were doing something wrong.
We could reason it later, I want to list all the things we realised were the reasons for it.
- We had this dream in our minds all this time while we were learning that we put our hearts into it.
- A team of 4 developers(Let’s say decent developers) working day and night to master something. Those man hours count :)
- Lastly, We didn’t compromise at all if there was even a slight room for improvement we just rewrote the damn thing. We were not being chased by clients for delivery so we had that luxury at our disposal.
By the end of December, we had the first draft ready for these projects and open sourced on Github🎉🎉🎉.
Jan 2017 (Business incoming…)
New Year 2017 came with a lot of good news for us.
People started noticing our open source applications, our methodology and contributions. We started getting emails with project proposals. An awesome feeling and our first time with open source on a large scale.
During this time we received 6 project proposals. Not having have enough bandwidth to work on all the projects we chose 2 projects we liked. Still, can’t believe I had to say NO to many good people.
We also hired 3 more developers, who started working with us. They went through an intense training since they were expected to be working on projects in just a month’s time. We are also actively hiring Angular, Rails, Elixir(language is not important) developers. Contact us if you are interested in working with us.
Feb 2017 — beyond (Full of Adventures & Business)
All this while, I was also writing blogs on Angular. One fine day, Pankaj Rawat suggested why can’t we produce some quality content on Angular. Having tried that in past in form of AngularCasts we knew a thing or two about it, not to mention some hundred followers on our youtube channel with not so good videos and shitty sound quality. We thought we could do so much better this time, with more knowledge and expertise. I liked it and so did everyone else.
So, this is what we have decided finally. We are going to produce a Udemy course to start with and intend to convert the transcript of the course into a full-fledged complete angular book.
How we launched Yatrum ?
Needless to say, out of all the projects that we did, Yatrum(Travel-app back then) is the most complex of all, Pankaj Rawat’s Pinterest clone was also special in a sense that we experimented with Phoenix framework for the backend which is built on top of Elixir language(sockets etc. in play). Putting our Exilir & Phoenix knowledge to use we power a MicroService in Yatrum. Microservices architecture has intrigued us for a long time. We have also used this pattern in almost all the projects that we have done which needed some immediate scaling. Microservices architecture has also given us freedom to use Golang(another language we are passionate about) while working with Ruby on Rails which is our forte. Main purpose of this service is to handle comments on trips, it’s called comments service for obvious reasons. Code for this service is open source like everything we do and can be found here.
We are even working on Yatrum’s iOS app📱, using the same reactive approach. For swift/iOS enthusiasts open source code can be found here on Github.
Coming back to Yatrum’s story.
Yatrum is a social platform for travellers, where travellers can check out trips and experiences from their fellow travellers. We’ll be adding a whole lot of other things too it like travel guides, hotel suggestions, attractions etc. etc.
What are we going to do with it?
We think it’s something we want to invest some of our resources in. We have launched it in the wild, we are not looking for funding for this project yet. For time being, we can fund it ourselves. That does not mean we are not going to be any less serious about it. We are actively looking for enthusiasts to join our ambassador program. It’s going to have only 25 travellers in the Pilot program. If you are an avid traveller who loves to travel the world, this program is for you. Imagine getting your trips sponsored by us. If you are still interested you can join the program by filling this form here. We’ll start contacting people after carefully reviewing the applications.
Yatrum Travel Ambassador Program is for travellers who love to travel the world. Sponsored trip is just the tip of the Iceberg.
Why we open sourced Yatrum?
We at Aviabird have decided to keep the code for Yatrum open-source on Github here forever. We are very aggressively adding code to it so you might wanna bookmark it 👻.
Open sourcing production applications is not a common practice. Telegram messenger took a totally different approach when they released all of their apps as open source code. I was shocked when I first came to know about it. I quickly downloaded their applications and spent some time looking at some good quality production code. Contrary to popular belief, that open sourcing is only for hobby or demo projects telegram today has more than 62 million registered users. That’s quite a user base.
Open sourcing builds trust amongst users.
Open sourcing also builds trust with users. Users are more likely to use an open source software for features when it comes to privacy. A recent study proves that Telegram users are more interested in money transfer in-app feature.
Why aren’t we going to keep the code private? For a very simple reason that it was our initial intention since the beginning to keep it open for the community to learn from it, and since Angular(the latest avatar) is a very new technology so it’s a good example of a production app people can learn from.
Yatrum: A production application people can come to if they want to take inspiration and look at how things are done in angular world professionally.
We are also getting many requests related to problems in setting up the backend which is rails and phoenix apps working together to power the backend. We are working to put together a docker image to solve this problem. Once we are done with it getting started with Yatrum locally would be a single command away.
$ docker run That’s all you’ll need.
How far have we come?
We started with this dream of becoming the best in the world in Angular.
By now you must be wondering how do we assess ourselves. Well, I want to leave that to the community, our code is open source go judge us on that. As far as I and the team are concerned, we think we know a good part of Angular, and the fire🔥🔥🔥 is strong.
What is open source for us now?
Personally, I never though open source contribution had this much potential to bring business. Now, I don’t think the same.
I also think the right time to be contributing to Angular open source is now since it’s a new technology and nothing significant is out there not in terms of open source production application at least.
If you are a passionate angular developer who wants to contribute to Yatrum do let us know. We’ll love to collaborate with you and see if we could offer other opportunities for you. Rails & Elixir enthusiasts are also welcome for backend projects.
If you liked this article, click the 💚 below so that it reaches more people her on medium.
If you think we could help you with Angular, Rails, Elixir & Go projects you can reach out to me on email firstname.lastname@example.org.
For more musings about programming, follow me here or on twitter so you’ll get notified when I write new posts,