git log --oneline 2009: hacked maymyindia roadpilot 2010: learnt php/js while building own website 2011: started hacking around with Android 2012: ported Xperia S firmware to X10 2013: CM device maintainer for 15 Xperias 2014: Contributions to AOSP, CM, Micromax 2015: Selected for GSoC, learning webstack
Why I like FOSS ● Free as in gratis (almost always) ● Free to modify, to suit my needs ● Support base, community, Q/A sites, forums ● Can look at the source and learn ● Can fix bugs on my own, and do good for the world ;) ● Can add my own features, and contribute back
What OSS means to me ? ● Learning to collaborate with 1000’s of devs ● Learning good coding practices ● Cleaner code, as everyone will look at it ● Work on real projects that the world uses ● Shoulder to shoulder with great developers ● Learning how large systems work
Brush with Linux ● Got to know about Linux in 7th grade. ● Was excited to know an OS other than Windows can exist ● Became a permanent Linux user by 9th grade, had far more features on a 700MB CD than a 9GB DVD of Windows ● The ease of use, and the major updates every 6 months made me <3 FOSS
Using more OSS Apps ● Used more FOSS apps like VLC, Audacity, Firefox, 7-zip, Notepad++ ● Used Wordpress and Drupal ● Initially mostly because they were gratis ● Later, because more plugins and faster updates
First contributions - CM ● Interested in the Android OS hacking scene after getting my first Android phone ● Soon realised the whole Android OS source was open and anyone can modify and compile ● XDA-Developers - one huge resource to learn how to start building the android source code. ● Learnt about CM, a modified version of Android. Started building CM for my Xperia. ● Learnt Java and C++ largely by reading others’ code
Rules of the Game ● CM journey taught semantics of FOSS world. ● Importance of authorship, licenses, copyrights and copylefts ● Learning git, and then gerrit. The initial shock of your code being reviewed :P ● Delving deep into version control, and it’s importance in the FOSS world. ● Understanding more about how the community drives a FOSS project.
Spreading out - own projects ● A github account was always exciting. Getting green dots was always an accomplishment. ● Started creating small websites and apps as personal projects. Used Github always. Felt special about sharing code with the world. Also github was convenient. ● Some projects became popular - a tool to modify kernels, a multi-touch library for Android, a custom kernel for Xperia phones
Getting addicted ● OS contributions became an obsession. ● Started electronics projects. Felt Arduino IDE lacked some features, became a contributor. ● Contributed to many Android libraries, GNOME plugins, almost anything I used personally and found bugs or features lacking.
Accolades and recognition ● Invited to speak at - ○ OSDConf ‘14 at JIIT, Delhi ○ Mobile Developer Summit ‘14 @ IISc Bangalore ○ DroidCon India ‘14, Bangalore ● People using and contributing back to my personal projects on github ● Started an OSS Special Interest Group at DTU ● Selected for GSoC 2015
A funny fiasco - 2014 ● Applied last year for a Debian project ● Porting Debian to Android. Related to something I was doing for last 2 years. ● The project was scrapped because of lack of mentors a week before deadline.
Luck by chance - 2015 ● FOSSASIA had a project - “Open Event” ● Basic idea : Android and Webapp templates that any conference/seminar events can use to generate microapps for their event. ● Co-incidentally had worked on a similar idea - “Eventful” - autogenerate apps for events for non-tech- savvy organisers, as a personal project. ● Selected, and an awesome experience so far.
GSoC with FOSSASIA ● FOSSASIA : Largest OSS organisation in Asia. ● Privilege to work under awesome mentors, for eg, Mario Behling - founder of Lubuntu. ● Learning to work remotely as a team. Scrum updates, synchronisation mails etc. ● Opportunity to move out of known domain (Android/Java/Systems) and learn the web stack, and create webapp in Angular JS.
Use FOSS ● One simple and sureshot way to get involved is to switch to an OS that's FOSS. You'll automatically use >90% FOSS Apps ● Linux often requires you to delve into shell, or build your packages. Instructions are simple, but you start getting the feel of compilation/configuration. ● You might have the itch to fix or add parts of an app you're using. If you're using Open Source apps, you just might, because you can
Go beyond just coding ● Try to start building 'products' instead of 'programs'. ● A software or an app is a product. It needs icons and design. ● You need to test, get it working everywhere. Make it 'installable' ● Your code needs to be documented so that you, or others can read it later. ● Open Source is largely about 'developing' and 'coding' is maybe 10% of it.