Embracing “open source” at a for-profit business, and why it is a better idea.

How Coding Blocks, a programming bootcamp, embraces open source culture, opening up course content and products.

Arnav Gupta
Coding Blocks
9 min readOct 18, 2017

--

The graffiti that greets you when you enter Coding Blocks

Coding Blocks — how it began

It has been close a year and a half I am part of the core team running Coding Blocks Pvt. Ltd. This was the brainchild of the enigmatic Manmohan Gupta, known widely among aspiring engineering students as “Munna Bhaiya”. He co-founded Vidyamandir Classes, a private institute that augments preparations for engineering entrance exams for high school students, and also was one of the co-founders at Nagarro Software, a software service and consulting firm, that has over 5000 employees, spread over 19 countries now.

A typical offline class undergoing at Coding Blocks

What Munna Bhaiya saw was a gap in skill development of engineering graduates (seen from the prism of a person who hired hundreds of fresh graduates for Nagarro). Of the hundreds of bright young minds he teachers every year, and who get into elite instututes like IITs and NITs and DTU, NSIT, BITS and the likes, the selection ratio the tech companies end up with, with these same students 4 years later (when they have their B.Tech degrees) is underwhelming. Somewhere the great Indian engineering degree circus is unable to get students industry ready. That’s the space we operate in. We teach programming fundamentals like data structures, object oriented programming and algorithms, and also have more product-focused programmes like mobile app development, web development, machine learning and game development.

Students attending GSOC meetup

The team: Open Source is a culture

I have a strong background in working with large open source projects. I always loved delving into projects like the Linux kernel, the Android OS, frameworks like JBoss, the Arduino ecosystem, to name a few. The “how did they put it together” question always fascinated me, and soon after starting to use these systems, I would find myself looking in and trying to find what I can tweak or tinker with. What started with trying to overclock my first Android phone, lead me to work with and for mobile OEMs like Sony and Micromax, and there are a bunch of Micromax phones out in the wild with significant parts of the Launcher, Camera and Lockscreen coded by me. Off late I have been involved with less low-level-system, and more application oriented projects like FOSSASIA’s open-event project and the JS framework Vue.JS

Being in touch with a vast network of similar open source enthusiasts, and being someone who very vocally and unabashedly embraces the open source community, automatically many of our recent hires at Coding Blocks have been people just like me — Harshit (Harshit Dwivedi) and Aayush (aayush arora), FOSSASIA contributors, who are first rate android and web developers respectively, Umair (Umair Khan), (he just left, after a 10 month stint with us, to work for Flock @ Directi), who headed our engineering products, being an AOSP and FFMpeg contributor with an enviable github profile, Prajjwal, who is the a living incarnation of the geekiest stereotypes you see in the Silicon Valley sitcom (we hired him literally because I immediately liked that fact he had a git repo for all his system configuration .dotfiles), and Anuj who was a core contributor to JBoss, has started a programming club at Noida, and runs a bunch of Java related programmes at our Greater Noida location.

Some of CodingBlocks’ team of bright and young interns and developers

The culture rubs off. Most of our interns (almost all of whom are former Coding Blocks graduates — and the best performers in their classes), are also growing into software developers with strong independent profiles, with lots of interesting open source and released-in-the-wild projects under their belts. The list includes Abhishek (Abhishek Gupta) , Siddharth (Siddharth Dungarwal) , Rishabh (Rishabh Khanna) , Bhavya, Apoorva, Naman, Varun, (another)Abhishek, Piyush among many others.

Open is better than closed. Always

What I believe, the biggest advantage, working in open, brings to the table, is that people can relate to what you’re doing, suggest improvements, and actually contribute to your product directly via code submission, and get a sense of fulfillment out of it.

Android Developer Day and GSoC meetup with JP Souchak and Akash Shukla from Google.

We ran a programme — BOSS (Bountiful Open Source Summer), in the lines of Google’s Summer of Code programme, and got such a great response, that we surprised ourselves. Our online IDE was built entirely by outside contributions, with almost 0 employee time spent on it.

There are so many other projects, that are open source on our github that actually form part of the core set of tools on which our e-Learning infrastructure runs.

“Intellectual Property” — really now ?

I have had the fortune of speaking at quite a few large tech conferences like JSFoo, DroidCon, 50p, Fragments. One common theme among them ? Or rather two? a) They are some of India’s best tech conferences with really really good set of talks and topics. b) They are all hosted by HasGeek. Kiran, Zainab, Hari, Sandhya, Karthik and everyone else from HasGeek has always been an inspiration for me, the way these guys have been running it, and I always used to wonder why and how they have built all of the tools they use in a transparent and open source fashion. They even have a slack channel where everyone can join in and chime in to various threads of discussions going on. I only realised the power of openness when I couldn’t use the DroidCon 2015 app properly, and ended up spending weeks sending PRs and improving.

It is easy to pass remarks like “businesses cannot open source their proprietary technology”, and act like lawyers with something stuck up your ***. It is what we have been seeing and hearing all the time “intellectual property”. It is what we have inherited from the 90’s Microsoft dominated software legacy. But the fact is today, open source is eating up the software world. What are the frameworks and platforms popular today? What is it that is used to build 2020 century products ? Android, ReactJS, Electron, NodeJS, Swift, Kotlin . . . you name it — they are all open source technologies. Some are supported by large companies, some are even the very backbone of large software companies (Android is big deal for Google, similarly Swift for Apple). And they are not just “open sourced”. They are actively “built in open source”, with huge amounts of public scrutiny, public code reviews, and entirely external contributions. The king of open source haters, Microsoft, couldn’t stay away from this, and open sourced .NET core, and is investing into technologies like Typescript, which is a fully open source outing for them.

Does that mean Google is open sourcing their PageRank algorithm or Apple is open sourcing the latest Bionic chip kernel source? Or is Facebook showing their hand on how they manage the real-time data layer (they only show your React, the frontend, and a convoluted pHp based HVVM backend engine — but what powers the data layer? Except from GraphQL, that magic sauce is secret). So, yes, there is a place for “intellectual property” and “proprietary code” arguments. But for the thousands of small startups building me-too products, which are just CRUD apps consuming a REST API, seriously, there is nothing to hide here. Make it open source, embrace the community, get people involved. Spread some ❤. Lastly, I would say this — if your ‘IP’ lies in your frontend, I don’t think you are building any great “tech product” out there my friend.

Open Sourcing = Best way to enforce good code standards™

Building products open source, has an advantage that is unparalleled. When we open source our projects, it adds the responsibility to keep to easy to understand for the “outsiders”. Guess what, better documentation for “outsiders”, also means better documentation for “insiders”.

A meetup of GSoC students and mentors in Delhi, organised at Coding Blocks

Also, from a security standpoint, most of our projects have become potentially more secure, by open sourcing them. And no, I am not speaking of “more eyes on it” type of security. When you publish your code out in the open, you are forced to decouple your passwords, your keys, your certificates from the logic. You do not rely any more on “security by obscurity”, which is a very bad habit, closed source projects tend to develop.

Also when you know you will be receiving external contributions, you automatically invest into continuous integration and deployment, automated reviews and other automation measures. The technical ‘credit’ (yeah I just coined this, opposite of technical debt) you accumulate by having CI/CD from day 1, is unimaginable in the long run.

Your “content” isn’t your USP. Your delivery is.

This, in the ed-tech industry, is something I realised, and was surprised to see, how very few people actually get. The fact is, there are many many many many people out there, who have become successful, have lived their lives, are content with what they have and now want to give back™. You cannot commercially compete with people who have no financial motivation. So whatever your education business be — whether you are teaching people to code, or basic math or science, THERE WILL ALWAYS BE BETTER CONTENT AVAILABLE FOR FREE. Let that just sink in.

We teach people how to build Android Apps. What about the code that I write in class, should I share it with the students openly, or only allow access through a secure channel? Well guess what, there already are better examples available on the internet.

Prateek teaching NSIT students how to build a 2D game in Javascript

It wasn’t long before we figured, why people come to Coding Blocks is not because of WHAT we teach, but HOW we teach. And thus, we decided to open source our class codes. The result ? We got PRs from random stranders on the interwebs, suggesting improvements in our course content, better algorithms than the ones we demonstrated, and it encouraged our students to send PRs to incomplete projects in class, and complete them as an assignment.

The road ahead — an open, connected community where people teach each other

We know now that our business doesn’t lie in hiding what we teach, but actually publishing it. We know the success of our products doesn’t like in building them hidden from the entire world, but by building them out in the open. It encourages all of us to follow better standards, makes us up our game, and gives the larger ‘Coding Blocks community’ a chance to contribute towards the mission.

Apart from teaching thousands of students every year, when we additionally are able to provide people that tinge of excitement that comes with “I contributed to a project, and my code is used by thousands of users”, it makes our ❤ swell with joy.

At Coding Blocks people who graduated in the 90’s and those who were born in the 90’s have equal fun

We hope to grow just like this, embracing all of you in the process, in the most open way possible. Hop over to our open source projects list to take a look and/or contribute, or you can take a look at the resources and codes we share with our class students, and maybe it might help you with what you’re trying to learn these days. And pass on the ❤ for open source, and keep building your own open source projects as well.

Cheers !

When we are not coding, we dress up in nerdy T-Shirts and go out partying to Cyberhub :D

--

--

Arnav Gupta
Coding Blocks

Swimmer, Coder, Poet, Engineer, Entrepreneur. Co founder of Coding Blocks. Mobile Platform at Zomato