About two and a half months back, none of us had an idea of what this journey would be like. RGSoC had been the first Summer of Code or any other program as such that we were a part of, and our eagerness to grasp the most from the program had us going all throughout. Not to mention, we have gained so much more than we had even anticipated.
Shravika and Brihi (Credits : Our dear friend, Saatvik)
Our Work this Summer
As we look back into our two and a half months, RGSoC and Tessel have given us the opportunity to explore and grow in all spheres of an Open Source Project.
Weāve got our hands dirty with things like Documentation, Tutorials, Code, Hardware experiments, Talks, Presentations and even Product Design, to name a few. We started our Summer with exploring version control with GitHub and learning the intricacies of the same. A professional Open Source project has a very different approach to Pull Requests and Contributions. We learnt how to send PRs, how to get them reviewed ( Trust us, Reviews are the real deal in the learning ), how to squash commits, how to write clean code and clean commit messages, branching of cloned repositories, and most importantly, asking doubts on the issues that we donāt understand.
Our shipped Modules (Credits - Brihi's Phone)
Our Hardware modules were shipped from the US and we spent some time exploring them. This was the most exciting part - Making circuits, seeing the LEDs shimmer, watching the Accelerometer come back to life, and many more.
Our first module! (Credits - Brihi's Phone)
After exploring the different repositories in Tessel, we started exploring issues which were Contribution starters. A lot of them were listed in the Tessel blog called āThis Week in Tesselā and we started completing them one at a time.
We made two 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.
Our first Pull Request for a tutorial! (Credits - Shravika's Laptop)
Apart from all the technical work, we learnt about Product Design and how exactly does a product make itās 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.
Challenges
Before RGSoC had started, our mentor, Kelsey had sent us a Plan of Work to follow. 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. One of the tasks we had to accomplish was to implement One-Wire Communication Protocol for Tessel. We tried 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 coding in Arduino with the one for 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 others. 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 us and started working on the same but got stuck in between since we were not able to push the python code to the module. Although, 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, one of our coaches, Divam, helped us in figuring out the keywords used in the code snippets with the help of which we were able to make some tutorial for a few functionalities in Tessel in JavaScript.
A shoutout to the amazing Tessel Community!!
Our blog couldnāt be complete had we not thanked the awesome Tessel Community that made our descent into Open Source, a smooth fun ride. Every call with Kelsey would begin with her asking us whether we have been achieving whatever we planned for.
Kelsey, our mentor, tweets about us! (Credits - Twitter)
Our weekly calls with Kelsey, our mentor, were the times where we had learnt the most. The timely response of the community members on any of our doubts was 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 times, Kelsey would explain 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 several issues that they thought we should be aware of and sent us links and resources to escalate our learning.
@HipsterBrown, an active Tessel Steering Committee member, responding to us :) (Credits - Slack)
Tessel has provided us amazing Mentorship, one that is hard to find. We are so glad that we began our Open source journey with such a welcoming community and we aim to work for Tessel even after RGSoC is over. Tessel, We love you!
Extras
In these three months, we not only focussed on core development work but we also went on presenting a few lightning talks. We gave two of them - one for Women Who Code, Delhi and another for LinuxChix India. In the WWC-D Meetup, we introduced the participants to Computer Vision in Python. It was a great experience, since, we got to delve deeper into Open CV, explain the concepts involved to the attendees, cleared their doubts. The audience was very responsive and we even got a positive feedback in the end. So, through this we were able to spread our knowledge about Computer Vision to a few enthusiasts beginning their journey in this. We introduced RGSoC in the beginning of our presentation, making the audience aware about what it is and how it really works.
Slides for the same can be found here
Women Who Code Delhi publishes a review of our talk (Credits - Twitter)
The LinuxChix India Meetup was focussed 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 all do we do, our work, our social media, our blog posts, in and all 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 more than delighted to answer them. One person even wanted to use Tessel in his project that he was thinking of starting!
Poster introducing us for the LinuxChix meetup (Credits - Twitter)
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 involoved for which we had to explore every nook and corner of them in order to make our sessions productive.
Slides for the same can be found here
LinuxChix India tweeting about us! (Credits - Twitter)
Whatās next?
RGSoC provided us with a whole lot of things that we not even imagined of 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!
We love you Tessel! (Credits - Twitter)
And who would know that two confused, scared and shy humans who had absolutely no idea how they would survive the tech world could complete RGSoC successfully, loaded with experience and confidence!
A big part of our program is providing RGSoC students with an opportunity to attend a conference of their interest. This year is not an exception. The students set their conference preferences, and we tried to make their wishes come true.
This concept wouldnāt work without conference organizers who share the same diversity values as we do. And we are especially happy that many conferences which supported us last year, decided to stay by our side this year, too.
We would like to say a big THANKS to the conference organizers who grant free tickets to our students. This means a lot to us!
Date: October 1-3, 2017 Location: Copenhagen, Denmark Twitter: @GOTOcph
Interested in attending this conference too? Get involved as a conference volunteer or contact us for getting 10% off promo code.
Date: November 16-17, 2017 Location: Berlin, Germany Twitter: @gotober
Interested in attending this conference too? Learn more about their inclusivity grant!
Being at #rgsoc has been one of the most fruitful yet challenging experiences this year. Every single day was exciting and came with itās own set of learning curve.
Our accomplishments so far?
In a nutshell, we learnt about coding, teamwork, collaboration and issue resolution. We even got to learn how to effectively communicate with remote teams across the world, listening and focusing on a common goal, defining tasks and keeping schedules. Well, sometimes not everything went well as we had planned and from that we learnt that nothing is perfect and we always have to keep striving to efficiently communicate and resolve our blockers. It has been an amazing journey!
Keeping and maintaining coding standards specified by an organisation
Learnt the importance of implementing peer to peer reviews
We felt the need of contributing to a shared vision
We revamped the search functionality by designing the UI and backend
We added new features to the new landing page - Cynthia helped alot with this
Simon helped us implement the backendĀ searchKickĀ functionality
Rgsoc has been a great experience. I have learnt so much. It has been fun collaborating with my partner, the coaches and our mentor. I hope to continue contributing to open farm (Photo by: Cynthia)
This was a fruitful summer and I would love to do it again. The lessons I have carried from this summer will go a long way in accelerating my growth as a software programmer. I have enjoyed the momentum that this summer has brought. (Photo by: Roselyne)
We wish to thankā¦
Our supervisor,Ā SimonĀ - We got to work with Simon through out the OpenFarm project and we cannot thank him enough for the immense work experience we have gained from him.
OpenFarm designer, Sophia - We got to work with Sophia on most designs that were implemented on the OpenFarm project. It felt great to learn about design from a person with a keen eye for design. Thanks Sophia, it was a pleasure to learn from you.
Travis Foundation - For organising our program for the entire summer. We remain forever grateful, and assure you that we really did feel the impact of the trust and belief you placed upon us. We plan to continue sharing this experience with interested parties.
We also wish to thanks our coaches - Sigu, William and Emmanuel for the guidance and time they dedicated towards the summer. These great guys ensured that we resolved some of the issues we encountered during the program.
We also wish to thank everyone at theĀ Rails Girls Summer of Code community who made this summer be as smooth, pleasant and awesome.
So, whatās next?
After working on OpenFarm and realizing the potential of the Open Source community, we hope to keep contributing to OpenFarm as well as other OpenSource communities to enrich this ecosystem and be part of this revolution.
Welcome to Nairobi, Kenya
Incase you pass by Nairobi, we can always have a chat about tech and our experiences. Feel free to reach out to us on our twitter:Ā CynthiaĀ andĀ Roselyne
We are in our final month of RGSoC! We canāt believe RGSoC is nearing the end. We have learnt so much since we started and are feeling more confident in pursuing a career in Development.
Working out of the office at our host company Zendesk, has been a great experience. We have met many wonderful and supportive peers.
We spent our first two months hanging out with Adel Smee and her team. For a few weeks we have moved to another floor to sit amongst Zendeskās Data Scientists and Data Engineers.
During our time here we have participated in a regular Monday morning meditation session, enjoyed many Tech Talks, attended a communication workshop and participated in an ice cream day.
We have been contributing towards if-me.org, an open source project founded by Julia Nguyen. We have been inspired by Juliaās passion towards building a community for sharing mental health experiences and providing support.
We have managed the project using Trello, Github and hosting a global meeting with our team each week.
With the support and guidance of Julia and our coaches we have completed a number of issues assigned to us on Github.
Pair Programming - Two brains are better than one and four eyes are better than two! We set up our environment with; 2 monitors, 2 keyboards and 2 mice/trackpads which has helped us write efficiently and keep us engaged while pair programming.
Photo taken by Jenny and Sophie
Git - The world of Git is never ending. Branches and branches and branches are unlimited and then remembering to merge and rebase and reconnect to the main branch. The Git journey has taken us to many places with a rebase back to home.
Ruby - There are more than one way to solve a problem. Ruby has helped us to do it in a way that is readable!
Rails - Rails is a framework which has provided structure and simplified repetitive tasks. Itās also pretty magical.
Javascript - Javascript likes its semi-colons ā;ā and ā;ā! And donāt forget the commas!
TDD - We regularly wrote tests within our code base. When it comes to building an application, we canāt live without TDD. As we have now a better understanding of TDD, our lives will never be the same.
There is an endless number of applications and developer tools available to us and the more we learn, the more we realise we donāt know enough and learning never stops.
Challenges we faced
This has been our first contribution to an open source project. It wasnāt easy diving into an established project. There was a lot to learn and discover. We had to navigate through all the files of existing code.
Getting the hang of Git was a bit of a challenge. We discovered that we could cause a conflict in Git when both working together on the same branch.
Pair programming can be challenging when working remotely. We worked remotely for 9 days and found it challenging because we were both working in different timezones and often had issues with internet connection.
We plan to develop on our existing programming skills, with the aim to become full time developers. We would like to share our experience participating in RGSoC with others, in the hope that this will encourage more diversity within the industry. We look forward to attending the Ruby Australia Conference in 2018.
Thank You!
Our summer (winter) of code is coming to an end, but it has been a great pleasure working with our amazing team of coaches. They have all provided us with a wealth of knowledge, which we can take away and implement as we continue to learn. Thank You to our wonderful coaches; Adel Smee, Adam Rice, Simon Hildebrandt and Tim Moore
A Thank You to LuĆs Ferreira for providing awesome support remotely.
A Thank You to Zendesk for providing a welcoming and supportive environment for us to work on our project.
Thank You to our Project mentor Julia Nguyen it has been a pleasure working on your project and we look forward to continuing our work on if-me.org. We also want to thank Julia and Bee, for our personalised RGSoC stickers and the wonderful if-me community for their support.
Photo taken by Jenny and Sophie
Thank You to our RGSoC Supervisor Vi Nguyen, it has been a pleasure getting to know you.
Lastly, we would like to say a BIG Thank You to the organisers of Rails Girls Summer of Code and all the sponsors for making this experience possible. This has been such a wonderful experience, we have enjoyed the opportunity to contribute back to the community in a positive way. This is an experience we will never forget!
Itās really exciting to see and feel our progress. In the beginning we were grasping at the huge space of ClojureScript tools and libraries and editors, and now as the last month begins our contributions to re-frameās tracing tool have already made it easier for developers to debug their applications! Thereās also a hint of melancholy that the summer of code will be ending in four weeks. Thoughts are starting to take shape about how to address the last third of the project. What do we want to achieve? What would be the ideal outcome? Letās gather some thoughts!
Learning and Growing
Through a glorious combination of working on re-frameās tracing tool, reading other peoplesā open source projects, hanging out with our wonderful mentors and coaches, and tinkering with our own side projects, we gathered experience in programming with ClojureScript and re-frame and learned about langugage specific idioms. What we find most valuable though is the great advice we got from our coaches and our mentor. They all have given us so much input for how to become good programmers, not only technically, but especially in terms of finding a good and efficient workflow, addressing problems on a conceptual level and the importance of clear and constructive communication.
coaching with Matt! / Photo by: Chris Sun
We are very thankful to have the opportunity to work together so closely with all of you! A big thank you for all your support!
Building and Collaborating
We worked on many features for the tracing tool with the intention to make it more easily usable. The first things we focused on were improving the filter functionality, making resizing of the window smooth and easy and adding some adjustments to the user interface. Another important addition was saving user data like filters to localstorage to ensure persistence. The traces that are being shown in the panel are still a lot and can feel a bit overwhelming. Our focus for the next weeks is to reduce the amount of traces to the ones that are important. For the end of the summer, we want to compare the tracing tool before and after we started working on it.
Community <3
In the third week of our project, we went to EuroClojure, which took place in Berlin this year.
EuroClojure / Photo by: Chris Sun
It was a great opportunity to connect to people from around the globe some of which are using re-frame in their everyday work. Being at conferences always leaves us very inspired and full of ideas for what to look into next. We also got some feedback and ideas for how re-frameās developer experience could be improved. In general, people were really excited about our project and some of them met us for lunch in the following weeks to talk about the project in more depth. These meetings were super valuable for us, as we were able to focus on very specific parts of development with re-frame. Itās so wonderful to be surrounded by the community in person after chatting over slack and github and twitter!
We also went to the monthly Clojure Berlin meetups, where we chill with and hear about the projects and intellectual musings of local Clojurians. I love how close the Berlin Clojure community feels, and these meetups often feel more like hangouts than tech events. Itās really special.
Clojure Meetup Berlin / Photo by: Chris Sun
RGSummerofChallenges
Open source and learning comes with difficulties along with the good times.
Clojure doesnāt have the best documentation, and itās widely known within the community that the beginner experience is rough. The ClojureScript tech stack is so big! It took us the first couple of weeks to properly orient around tools of the ecosystem and the language itself: build tools, development tools, ClojureScript compiler, JavaScript interop, frameworks, libraries, fighting and reconciling with our editors. This is all before writing any code, which can feel really frustrating, because thatās what weāre here for, right?
CLJS Comic / Comic by: Chris Sun
Luckily, the Clojure community is very helpful and social, and sometimes posting in the proper channel of Clojurians slack would result in solutions, feedback, encouragement, or a push in the right direction. And of course our coaches and mentors were really eager to help!
Organisation was also a challenge. Being self directed is already hard, and there were not only many parties to coordinate with, but it was also not explicitly defined who was supposed to take responsibility/have decision-making power for which things. Being that all the parties consist of kind and considerate humans, it was an odd and sometimes frustrating balancing act for everyone involved between wanting to take action and also not wanting to infringe on others. I imagine this is a common pain-point in open source, so itās an important experience to learn to navigate. Project organisation was also a challenge because there were so many possibilities, so many ways we could make the developer experience better that itās hard to pick just a few!
After the Summer
The future is uncertain, but the job hunt has begun, and weāve both begun taking bold steps towards securing full-time Clojuretastic livelihoods. Continuing to work with Clojure and Clojurescript would be a dream, however improbably this might be, but with the momentum from Summer of Code and the support of the Clojure community we have high spirits!
Over the summer weāve accumulated a huge pile of Clojure, programming, open source, and general life notes and feelings and hope to eventually sculpt these into blog posts. Also weāve kicked off so many collaborations and personal ClojureScript projects weāre really enthusastic about continuing to work on!
We are both helping organise ClojureBridge Berlin, which will take place right after RGSoC ends. ClojureBridge is close to our hearts, and is what brought us together as a team in the first place, so it feels like everything is coming full circle, starting and ending with community <3