A note from Kelsey, mentor for team 275linesofCode:
I loved working with Brihi and Shravika through the summer, and am so happy to see them still commenting and contributing in the Tessel channels, four months after the official close of the summer program.
Rails Girls Summer of Code provided just enough support (including requiring the mentees to find further technical help locally) that I could focus my role on finding the intersection between the project's needs and my team's interests.
It was a pleasure to watch my team dive into challenges, struggle through frustrations, overcome shyness about asking for help, and really grow as contributors to the open source ecosystem. It also helped me to engage better with my own project, and was a wonderful source of energy for the Tessel Project as a whole.
To the other open source projects out there: I strongly recommend becoming a project mentor– this year's deadline is January 28th, so jump in soon!
In June 2017, none of us had any idea what this journey would be like. RGSoC was the first Summer of Code or any other code mentorship program that we had been a part of. Our eagerness to grasp the most from the program kept us going all through the summer. We gained much more than we had even anticipated.
We both believe that Tessel was the best project that we could have worked on, since it welcomes new contributors in a positive manner that motivates them to give back to the community as much as they can.
As we look back into our two and a half months, RGSoC and Tessel have given us opportunities to explore and grow in all spheres of an open source project. We got our hands dirty with things like documentation, tutorials, code, hardware experiments, talks, presentations and even product design.
We started our summer by exploring version control with GitHub and learning its intricacies. A professional open source project has a very different approach to pull requests and contributions than we were used to. We learned how to send pull requests, how to get them reviewed (trust us, reviews are the real deal for learning), how to squash commits, how to write clean code and clean commit messages, how to branch cloned repositories, and most importantly, how to voice questions and doubts on the issues that we don't understand.
Our Hardware modules were shipped by the Tessel team from the U.S., and we spent some time exploring them. This was the most exciting part: making circuits, seeing the LEDs shimmer, watching the accelerometer come to life, and much more.
After exploring the different repositories in Tessel, we started exploring issues which were "contribution starters", issues that help new contributors get an idea of what Tessel is all about. A lot of the starter issues we took on were listed in the Tessel blog called "This Week in Tessel"; we started completing them one at a time.
We made important tutorial modules for Tessel for their documentation page. This included Fritzing diagrams of the circuits, describing the functionality in layman terms, and writing code which would be easily understood, with the help of the comments. Along with this we started working on "Reach" during the last few weeks of the program.
Apart from all the technical work, we learned about product design and how exactly a product makes its way to the open source domain. We made a draft of something called a Product Requirement Document (PRD) for our proposal of HAP (Humanoid Arm Project) that we had made during our application process.
Before RGSoC had started, our mentor, Kelsey had sent us a Plan of Work to follow, which helped us to schedule our tasks. It included the various things we had suggested we would like to work on during our application process. It was a weekly plan with difficulty level slightly increasing every week.
Here are some of the challenges we faced during the program:
-
One of the tasks we had to accomplish was to implement One-Wire Communication Protocol for Tessel. We worked for our initial few weeks on this issue, but we were not able to get much out of it. This was because we were not able to figure out exactly where to start. We tried mapping the Arduino code to Tessel, but still couldn't succeed.
-
Since we were beginners in git, sometimes we weren't able to figure out how to squash multiple commits into one for clarity, how to sync the forked branches with the master branch, and many other foibles. In the beginning, we did not even know how to send pull requests for different issues by making separate branches for each.
-
In the second month of RGSoC, during one of our weekly calls with Kelsey, we were introduced to Reach, which is a module that the Tessel community is currently working on. It requires the ESP32 hardware module. So, we got one for ourselves and started working on it, but got stuck since we were not able to push the Python code to the module. In the end, we were able to figure out the error in our approach with the help of one of our seniors at our University.
-
Tessel was all based on JavaScript. We were both new to this language and hence faced certain challenges while comprehending the code which was already there in Tessel. But, our mentor Kelsey, along with one of our coaches, Divam, helped us figure out the keywords used in the code snippets. With this help, we were able to make some tutorials for a few functionalities in Tessel in JavaScript.
Our blog couldn't be complete were we not to thank the awesome Tessel Community that made our descent into open source a fun and a smooth ride. Every call with Kelsey would begin with her asking us whether we had been achieving whatever we planned for. She even asked if the tasks for the week were a lot or too little. But she always ensured that we had the right amount of work on our plate for that week.
Our weekly calls with Kelsey, our mentor, were the times where we learned the most. The timely response of the community members on any of our doubts were commendable. Any PR review would come in a day or a two, and the reviews gave us a different perspective on the issues. Nick and Kelsey, both Tessel Steering Committee members would leave comments asking questions about our code, which would force us to research more on the issue.
On our third meeting with Kelsey, she had said that "It is better to over-communicate rather than under-communicate" and thus, we would ( shamelessly 🙈 ) ping them on Slack or on the issues whenever we were stuck, and a descriptive solution to our questions would follow. Many a time, Kelsey would explain to us our doubts on our call. Despite whatever mistakes we would make, the committee members were always positive and ensured that we were able to rectify our errors and learn from them. Many times, they've tagged us in issues that they thought we should be aware of and sent us links and resources to escalate our learning.
Tessel has provided us amazing an mentorship experience, one that is really hard to find. We are so glad that we began our journey into open source with such a welcoming community, so much so that we are more than willing to work for Tessel even after RGSoC is over. Tessel, We love you!
In these three months, we not only focused on core development work but we also presented a few lightning talks. We gave two of them - one for Women Who Code, Delhi and another for LinuxChix India. The LinuxChix India Meetup focused more on open source contributions, RGSoC and Tessel. Our supervisor Vaishali had introduced us to the community and put us in touch with the organizer of the meetup. We spoke about RGSoC - How to apply, what we do, our work, our social media, our blog posts, everything. After that, we went on to demonstrate our project - Tessel. There were several open source enthusiasts who had loads of questions about Tessel, and we were delighted to answer them. One person even wanted to use Tessel in his project that he was thinking of starting!
It was a great experience for both of us because we were able to pass on our knowledge to an enthusiastic crowd, get rid of our fear of speaking in front of unknown people, and gaining in depth knowledge of the topics involved. We had to explore every nook and corner of the topics in order to make our sessions productive.
RGSoC provided us with a whole lot of things that we didn't even imagine gaining in this interval of three months. As it was a wonderful journey for both of us, we have thought of recommending this program to more and more people by conducting a few related meetups at our University under our Rails Girls Summer of Code, Delhi Chapter. Apart from this, we had discussed way back with our mentor during the application process that we would love to contribute to Tessel even after RGSoC ends. The months might be over, but the memories are here to stay!
Who would know that two confused, scared and shy humans who had absolutely no idea how they would survive the tech world could successfully complete RGSoC, loaded with experience and confidence?
Check out Rails Girls Summer of Code (it's not just for Rails), and get involved as a mentor or a mentee for 2018!