1) What was your coding preparation for Google Summer of Code (GSoC) and when did you start with it?
There was no specific preparation as such. When I was in my second year I thought that I should try for GSoC as it sounded really cool to me. When I learnt more about the organizations, it was intimidating. There might be many people right now who might be scared of the big terms they use. I didn’t do much of GSoC in my second year. I started in my third year. It really helps in GSoC if you work on a project that interests you. I was working on a project called RADARE2. I checked out the code and started fixing the issues in it. The first issue took me two weeks. There is no preparation. It’s just about the start. Once you start it is easy.
2) Why did you wait up to your third year for GSoC?
As I said that in GSoC you need to converse a lot with other people from different countries and you need to bond with them. I was not that confident in my second year and waited for the right time which was my third year. Earlier I thought that I would come out as a noob. But then I realised that these organizations want contributors and you learn more when you share your knowledge and gain the same from others.
3) How did you get into RADARE and what was your experience over there?
RADARE was my GSoC organization. Also, it is an open collaboration software. I started contributing towards it and fixing the issues in the code. Last September they invited me to Barcelona for their conference. A lot of people from all over the world had come to attend the conference. I was the only person from India there. Usually, in open source organizations a lot of people work for their interest and not just for the money. All of these are very smart people and you get to learn a lot from them. The talks which I had with them, the workshops I attended were really good.
4) What product did you develop in GSoC?
The product on which I was working on was RADARE2. It is a computer security analysis system. I was using it for ‘Remote Debugging’.
5) In case a student is starting his preparation for GSoC, how should he/she go about it?
It usually depends on how early you start. The list is released February. So, October is quite early. But keep in mind that GSoC is not an end goal. It is just an incentive to programmers to get into open source and become a better programmer. But, we tend to look at GSoC monetarily, because it gives us money.
First, pick up a project that interests you. Then, select a programming language that you are comfortable with. The community of that company should be good and active. They will have applets etc. Every organisation will have a section on “getting started” and they will have place to talk to them like IRC or telegram. Short list 4-5 companies based on the above criteria. Talk to them and get started and first solve an easy issue. Spend 2 to 3 weeks on it. By February you should have shortlisted around 3 organizations. Then it becomes easy. The most important thing though is to start contributing to the organization.
6) How was your experience at the Spanish Conference?
They had invited three people from India for the Conference held in Barcelona. We were even reimbursed for up to a thousand euros by them. I had to give a talk about my GSoC work. I also went out in the city. The city was nice. I dined out a few times with these people. The best part about the conference was meeting new people and making a lot of new contacts who would recommend me to some internships as well.
7) What is Reverse Engineering?
Reverse Engineering is like getting the code from ‘.exe’ file going backwards. Another example is understanding the virus to write an anti-virus software to it. People develop crack versions of software by going backwards and then remove the product key requirement. I used Reverse Engineering in my GSoC work.
8) How did you start building your own operating system?
In my first year, I was a very enthusiastic kid. Everyone was into competitive coding and I wanted to do something completely different. Since there was no such significant work going on operating systems in the campus, I decided to learn myself. Google is a student’s best friend. I read a lot about operating systems theory and tried to learn the basic stuff (hardware). I used to write a lot of assembly programs that helped my understanding. By the end of the first year, I gave up. In my 4th semester, I decided to give it a try again since I had gained enough knowledge by then. I also followed many forums on operating systems development. This was my hobby and that is what kept me motivated throughout.
9) What were the difficulties you faced while creating your own operating system and how did you overcome them?
There have been many difficulties throughout the journey. But I have seen many people who just give up as soon as any difficulty arises. I personally feel that when someone does this then the person is giving an excuse. Maybe the person is too lazy and tries to make an excuse to not even try by saying that things are too difficult. I don’t randomly keep giving up or pushing things aside. In the process of trying to search for a solution to the problem we learn a lot. You must keep trying until you get a solution. When something breaks, I learn when I try to fix it. Don’t be afraid, if something breaks and don’t keep believing that you won’t be able to fix it. Push yourself and you will find a way to fix it.
10) What are the interesting projects going on in CRUx and the Computer Science Association (CSA)?
I am no longer a part of CSA, so I won’t talk on it. Right now, Mooshak isn’t working as the faculty member responsible has left campus. So CRUx is making a coding judge. We are also working on making a download manager that speeds up downloads. The CRUx website that we are developing is also interesting.
11) What areas would you suggest for CS students to do projects in? Give example for good projects in each area.
Computer Science is a vast area. So, you cannot specifically state the areas you should be working with.
Machine Learning is very popular and everyone is going for it. I was interested in systems programming, OS and compilers. There are new research areas in that field now. For example, there is one area called formal verification in which you have to mathematically verify that the program is correct. In compilers, you have optimization techniques. Nobody in our campus has worked on it yet. New things are coming up in Security as new viruses are coming up. The security end techniques called Return End Programming are interesting. Rajesh Srivastava is working on it. I work on systems programming.
12) Assume you are in first year again, what is the road map you will suggest for CS students keeping an eye on MS admissions and placements?
First and most important thing is your grades. Yes, grades. A grade of at least 8.5. Do not waste your time in video games. Keep trying new things. After your college, you will not have time to experiment. Do not get settled in your comfort zone. All these four years you have to keep experimenting. CS students in particular, should install any Linux distribution such as Ubuntu and familiarize yourself with Linux. Then remove it and install RC Linux or Gentoo. Because Linux is important if you are going into CS. If you stick to Windows, become a power user. Learn how to use power shell. You should know how to administer your systems very well and you should know how to handle the security of the systems.
13) What advice would you give to CS students for placements?
The first barrier is coding rounds. Once you clear it, you can talk your way through the interview. So at least a year’s worth of programming and practice is needed. Get your CS fundamentals right. It depends on the company. Some companies need it, but others do not (like OS). For example, knowledge in databases may not be needed for some company, but Oracle asks for it. Also, be very clear about your projects.
14) Can you describe your job role at Qualcomm?
Currently, the position I am working at is of an Associate Engineer. They will put you in a pool of talent. Different teams will select different people and they are assigned work as per their need.
15) What is the scope in the security field?
Scope of ethical hacking is going to increase ever because of the increasing cyber threats. More and more attacks come because everybody is online and companies have big servers and networks. Lot more online services are coming up. Hence scope of security field is very good. It is easy to get a job with a salary of 3 to 6 LPA for software developers and the barrier for entry is very low. But barrier to get entry in the security field is very high as there are not many security professionals around, especially in India. Once you get into it and since you are the only very few, the pay package will be very good.
16) What are your future plans?
I would like to work in computer security mostly in penetration testing. So, I will be working at Qualcomm for 3 to 4 years and then move onto a security level job. I do not have any plans for Masters right now.
We would like to thank Mr. Srimanta Barua for his time and support regarding this.
The SWD Nucleus is inviting suggestions for further interviews. Feel free to fill the suggestions in the attached google form.