Google Summer of Code is "a global program focused on bringing more student developers into open source software development". The Continuous Delivery Foundation, a neutral home for the next generation of Continuous Delivery collaboration, organized Google Summer of Code involvement for Screwdriver. Screwdriver, a Continuous Delivery Foundation Incubation Project, is an open source build platform designed for Continuous Delivery. Supratik Das, a Google Summer of Code 2020 student, collaborated with two mentors from the Screwdriver team, Jithin Emmanuel and Tiffany Kyi, and worked on improving SCM integration.
When did you discover your passion for software engineering?
My passion for programming and building things dates back to my school days when I used to have a lot of fun building simple games using languages like QBASIC/Java. I was really intrigued by the infinite possibilities in this domain and was quite determined that I wanted to pursue software engineering as a career. In college, during my freshman year, I was introduced to campus programming groups, which helped me strengthen my skills and discover newer areas in this domain.
What inspired you to apply for Google Summer of Code?
I wanted to be part of a large project that is maintained by numerous contributors. I was inspired by the fact that I would gain a lot of experience in developing production grade projects and learn coding practices and conventions.
When you first heard that you’d be collaborating with the Screwdriver team, what were your initial thoughts?
I was really excited about collaborating with the Screwdriver team, as I have a keen interest in DevOps and CI/CD tools.
What did you enjoy most about this experience?
Although I have experience using CI/CD tools, I've never developed a tool before. Screwdriver is one of the leading open source CI/CD tools and it was really interesting to implement newer features in the large codebase. Any project with so many modules and plugins can be overwhelming for a newcomer but thanks to the properly maintained and structured codebase, it was quite easy. Both of my Google Summer of Code tasks were closely related to pipeline and build creation and as a result, I worked on a lot of Screwdriver modules. The CI/CD flow can be quite complex and by developing on Screwdriver, I was able to learn a lot about it.
For folks who might be curious about using Screwdriver, what should they consider?
From the application developers point of view, if they want to adopt Screwdriver as the CI/CD infrastructure for their projects, it is indeed a wonderful option. It has scrapped most of the complexities involved and has made creating pipelines a breeze but with a lot of power and extensibility. For contributors, if they are interested in CI/CD technologies and want to gain open source experience, Screwdriver is a really good option. The codebase is self-explanatory and the team is very helpful.
What advice do you have for software engineers who are just starting college?
First, explore a variety of domains. Being curious is important and once someone finds their area of interest, they should pursue that area diligently. What helps in this process are open source projects. There are some resources readily available and software engineers can try out a variety of projects to know if one area does really interest them. Something that I wished I knew before was the importance of open source projects when building skills and a portfolio. Interacting with open source contributors not only inspired me to contribute more, it also made me aware of how valuable and important it is to contribute.