Interview with Anup Kalbalia, Senior Project lead at Directi (Codechef)
Posted On October 30, 2014 by Shruthi S filed under Enterprise
Can you please explain the history behind CodeChef and how it started?
It was in the year 2009 that we had started CodeChef. The goal was to improve and expand the Indian programming community. This goal was shaped by the following turn of events.
Directi had made its first visit to a campus for hiring freshers in the year 2009. It was a phase in Directi, when we as an organisation wanted to make a transition. We wanted to build some great products and for that we had to hire the best talent from across the country. It was a big leap for us. The question was how? We came to know about the ACM-ICPC through a few of our lateral hires. We explored more and it is then that we figured out for the first time, the value of competitive programming, also termed as Sports Programming. There was a direct correlation between the best software engineers and the best competitive programmers. While we did find a path towards our hunt for talent, we realized a bigger problem that India was facing.
We came to know how poorly India has been performing at this prestigious international programming event. In spite of the vast amount of intellectual talent available in the country, our performance has not been close to top notch. It was disheartening to see India lagging behind so much when it came to solving complex programming problems. We launched CodeChef as an experiment to address this situation. We wanted Indian students to have fun while improving. It was also important for us to bring the global competition home, so that we can learn to compete with the best out there.
In 2010, we had launched the Go For Gold program. The goal of the Go for Gold Project is ambitious: we want an Indian team to win the ACM-ICPC contest, the most competitive programming challenge in the world.
Over the last four years, we have taken some steps forward. Today, it won’t be incorrect to say that students in most of the top tier engineering colleges in India are making use of the platform.
What is your strategy in promoting the cause of coding and programming in the country?
Coding and programming are very broad areas. Our strategy has been to run regular competitions and reward and recognize the best performers. The idea is that competition scales very well. Competitive programming also has certain other advantages over other traditional methods:
- It teaches a student to write code adhering to specifications.
- It enforces one to write code optimised for time as well as memory.
- It helps learn faster.
- Above all, it is fun
We combined all of the above to build CodeChef. There have been various ways in which we are trying to achieve this:
- The monthly online contests: We started with running a marathon 10 day programming challenge, that we still consider is the primary place for learning. It has 10 algorithmic problems of varying difficulty levels. It starts on the first Friday of every month and covers two weekends to give enough time for users to read a problem, go back and learn a concept and solve the problem and get the gratification of solving a problem during a contest and moving up the rank tables.
We also reward the best Indian participants separately in every contest along with the best global participants to encourage them.
- The CodeChef Campus Chapters: These are programming clubs targeted specifically towards competitive programming, which need are guided and mentored by us. The idea behind them is to create a strong culture of competitive programming across all colleges and schools in India and exchange knowledge amongst themselves using our platform.
- The Host Your Contest Program: We provide our platform to any educational institute in and outside India to conduct their own programming contests absolutely free of cost. We take care of the infrastructure, publicity and platform aspect of hosting a contest for them.
- The Go For Gold program: As mentioned earlier, the idea to make Indian programmers win the toughest programming contests in the world.
We have also approached and tied up with various educational institutions across the country who are using the platform to make use of competitive programming in their curriculum as well as as a sport. IIIT Delhi uses our platform extensively in their curriculum as well as for their admission process.
We have also tied up with IIT Kanpur, IIT Kharagpur and Amrita Schools of Engineering to conduct their regional rounds of ACM ICPC on our platform this year.
What has been the feedback from CodeChef’s target audience so far?
The feedback that we have been receiving has been overwhelming. We receive many thank you emails and messages. Our discussion forum is very active. We have extremely active social media channels with over 1.7 lakhs followers on Facebook, over 6K+ followers on Twitter and over 35k+ followers on Quora.
However, it has not been a smooth ride. We have made mistakes, repeated them and learned from them. In the process, we have received a lot of flak from our users as well. When we launched, many considered CodeChef as a recruiting platform for Directi. Since then, we have come a long way and today we are the largest programming contest platform in India and among the largest globally. People have started understanding that for hiring purpose, we do not need to invest as heavily as we do on CodeChef.
What sort of preparations do CodeChef provide for students, So that they can crack one of the top spots in the IOI?
Our focus on IOI happened much later. To be precise, it was only last year, that we launched our School initiative. There is also a story behind this. Let me tell you that.
As I mentioned earlier, it was in 2010 that we had launched our Go For Gold initiative, and for the first time the CodeChef team visited the ACM ICPC Regional site to meet the participants in person. It was an inspiring moment for us. We met and interacted with some of the brightest minds of India. On an excursion with these students, we also visited an engineering college, which could at best be termed a tier-3 college and interacted with the computer science students of that college. And there we witnessed another reality. The students did not know what an online judge was, something that is the premise on which these contests are run! The experience of meeting the two ends of the spectrum was humbling. It made us realize that there is still a long way to go for us. We came back more inspired. While winning the gold at the ACM ICPC by an Indian team remained to be an ultimate dream, another started creeping in. To try and remove this disparity between the students of the same subjects in different colleges. The task was not easy. There were multiple options and our resources were limited. On much pondering we felt that “Catching them young” seemed the way to go. Making students aware of programming when they are in middle or high school and much younger will give them more time to explore, learn and love the subject.
We started talking to people. Our users, previous year ICPC winners, professors, and teachers. When the ICPC World finalists from India won the Go For Gold Cup for improving the best ever rank attained by an Indian team in 2012, we got a chance to speak to them in person. And this time the idea that we have been pondering about got some backing.
Now the question was what could be done to involve the young guns? This will also answer you question.
Organizing training camps to get them started would be a good way to start. We had received a lot of feedback from people in favour of such trainings. But training was not something that we were skilled at. And more importantly training was not very scalable. And we only knew competitive programming.
As a part of this initiative, we want to target students in the middle and high school from across the globe and get them started to competitive programming. And we hedged our bets on the International Olympiads in Informatics. IOI seemed to be a right goal which the students can be made to target. IOI is to schools what ACM-ICPC is to colleges and universities.
There are various issues that the Indian students face. This program aims to identify and address them. To ready the Indian students for the world stage, we’ve created a new programming contest called “LunchTime” specially for school students to give them a competition similar to the IOI and a practice ground to build their skills. It is an ongoing contest hosted on the last Sunday of every month.
Though it is open to all for participation, it is specially meant for the middle/high school students. There will be separate rating system for school students. We send certificates and prizes to the top schools students from India and from across the world. We send them to the school principal and request them to hand it over to the kid in front of the assembly to encourage more students to take part.
There is very less participation from India at the IOI. Hence, we extended our Go For Gold program to the Indian school students. As a part of this program, we will be giving away cash scholarships worth of 5 lakh+ rupees to the Indian student who wins the Gold medal at the IOI along with a job offer at Directi, while he is in school. The cash prize keeps on increasing every year that it is unclaimed for.
And we are extremely happy to say that in it’s second year, a student from Delhi, AkshatBubna of the Amity International School has created history by winning the Gold medal at the IOI and the Go For Gold prize as well.
There are many people who have helped us continuously in terms of providing us much needed suggestions and help. The guidance of Professor Madhavan of the IARCS, the institute responsible for selecting the Indian contingent for the IOI, and his continuous support in shaping up this program has been invaluable.
There are many college going users on our platform who help in this programming by volunteering to go to their school and promote programming and mentor the kids.
Summing up, what is your advice to encouraging coding /programming among Indian students?
Many students have actually asked me this. The only thing I tell them is that if you like programming give it a shot. Today, the best software companies in the world hire on one’s skill at competitive programming. It may land you up with the most coveted jobs in the world, but that is not the reason I tell them that they should take to it. Do it for fun, do it if you like it.
And programming is one subject that does not need big labs unlike other engineering fields. You can master the subject sitting in a corner of your house or hostel. All you need is a computer and an internet connection. Every student in a college has both of them. Thats all that they need. This eliminates the difference between the student in a tier-3 college and the top college, say an IIT. There is so much content available online, tutorials, videos, tools, discussion forums, help from your peers who may be sitting in the other part of the world! There are some very good examples of students who have received job offers from top companies like Google and who come from a totally unknown college.
If you are in school, this is a fun subject to learn. There is so much you can do with programming. You do not need to aspire to be an engineer to learn programming. Today almost every field that you want to make a career in, makes use of computer programming. Problem solving is an essential part of it. It develops your ability to think logically. And if you like maths, it is very likely that you will love solving complex algorithmic problems. Do it for fun.