UWI Software Architecture Presentation

The Palisadoes Foundation’s GitHub projects are now being used as a part of the Software Architecture SWEN3120 course at the University of the West Indies, Mona Campus.

This video explains how to get started with Talawa and outlines many of the everyday challenges that software developers face in creating applications that users value.

Meet Rutvik Chandla

Rutvik is one of our 2021 Google Summer of Code (GSoC) students working on our Talawa project. He started participating in March, and was formally accepted as a GSoC student in May. He has been collaborating with other students and mentors on his various GitHub pull requests.

Welcome Rutvik!

Hi✋, I’m Rutvik Chandla, Computer engineering student from Gujarat, India.
I love to design new products and code them to reality. UI/UX and mobile development are my major interests. Started my development journey with Android. I’ve been working on Flutter for a few years.I’ve also dipped my toes into web-development with VUE JS.

The Thing which excites me the most is to solve or make things more efficient for day-to-day problems. Development is a way to solve those problems. Open source is always a fascination for me, I’ve contributed to few organizations and gratefully got a chance to work with the Palisadoes Organization in GSOC 21. Till now it has been a great learning experience from the mentors and building the Talawa project.

Hope to have a great journey ahead✨.

Meet Our 2021 Mentors

We highlight the many mentors who donate their time to assist students and other contributors to our open-source software repositories.

Troy Anderson

I am a Software Engineer at Digicel Group specializing in backend as well as cross platform mobile development and was a primary contributor in the development of the MyDigicel App. My primary role in Google Summer of Code (GSOC) entails planning and code reviews for the Talawa mobile app to ensure the code remains maintainable, testable and readable during it’s lifecycle.
Having had mentors not only during school but also throughout my professional career, GSOC is my way of paying those favors forward; empowering those whose position I was once in. The journey of learning never ends and I am happy to say I learn as much from students as they do from me; I believe that’s what GSOC and mentoring in general is all about.
Outside of work I enjoy traveling, cooking and the occasional amateur photography.

Brandon Chung

Brandon Chung is a Software Developer experienced in working with Flutter, Vue, SpringBoot, and other programming languages and frameworks. Brandon specializes in Web and Mobile App development, and has had a hand in developing a number of personal and enterprise grade applications. Brandon has held positions of student leadership at the University of Technology, most notably as the Student Chair of the IEEE UTech Student Branch. In his spare time, Brandon enjoys tutoring others in Software Development and playing video games.

Brandon volunteered for the first time with with the Palisadoes foundation in 2021 as a Google Summer of Code mentor.

Jason Gayle

I am a software developer specializing in full stack development, and however, I am mostly fluent in using frontend technologies such as React.js and Next.js. Moreover, I am also versed with UI design, and aim to delve into UX engineering as my career progresses.
For Google’s Summer of Code, I had primarily mentored for the Talawa-Admin project, whilst also occasionally assisting with the code review for the Talawa-API project. My role as a mentor has been to ensure that the quality of the contributions made to the project were of a high standard, whilst also providing the contributors with assistance whenever it was needed.

I am currently in my final year of studies for my Bachelors degree in Computer Science at the University of the West Indies and in my spare time, I enjoy practicing playing the guitar, and travelling to improve upon my photography.

Dominic Mills

Dominic is currently an Associate Software Engineer at RealDecoy–A business technology company that helps B2B and B2C organisations maximise their investments in e-commerce, site search and data insight. He has experience in the mobile and web development space and has previously been in a number of leadership roles: He was a group leader for the inaugural Lindau Sciathon; team leader for UNLEASH+ 2020; and is currently the team lead for one of the six funded AlumNode Projects in 2021. Additionally, he is a twice selected Leader of Tomorrow of the St. Gallen Symposium, and is the first Jamaican selected for the CERN Summer Student Programme. He is also an Associate Fellow at the Royal Commonwealth Society and has participated in many international programmes aimed at nurturing young scientists and thought leaders, such as the Think Summit Global Solutions, Heidelberg Laureate Forum and Lindau Nobel Laureate Meetings.
Dominic finds mentoring a thoroughly enriching experience and always aims to learn as much from his mentees as they do from him. He is keen on helping others unlock their full potential as well as refining his skills in communication and teamwork.

Sagar Utekar

Sagar Utekar has been a key contributor to Palisadoes Foundation projects. He learned about because of his interest in the Google Summer of Code and quickly realized that most of our mentors were based in Jamaica while most of the students wanting to work on our projects were based in India.

Sagar lives in Maharashtra, India where he is currently working for the VMware Software India Pvt offices in Banglore.

He has a Diploma in Information Technology from the Institute of Petrochemical Engineering, Lonere, Raigad and a Bachelor’s in Computer Engineering from Pune Institute of Computer Technology.

He has over 3 years experience managing client-facing projects, troubleshooting technical issues, and working with engineering. This includes experience with:

  • Maintaining internet facing production-grade applications in Virtualized environments.
  • Writing software in Java, Python, Go, Node.js
  • Cluster deployments and orchestration technologies using Chef, Ansible, Docker, Kubernetes, Helm, OpenStack, Jenkins, KOPS.
  • Managing Kubernetes in large production environments.
  • Monitoring and alerting infrastructure using ELK, Prometheus, Grafana, Pagerduty, Slack, Datadog
  • Scalable networking technologies (e.g., Load Balancers, Firewalls) and web standards (e.g., REST APIs, web security mechanisms).
  • System administration tasks in Linux, Unix, or Windows and familiarity with standard IT security practices (e.g., encryption, certificates, key management).
  • Managing Kubernetes in large production environments.
  • Open source server software such as NGINX and Elasticsearch

The Day Talawa Grew Up

How the Google Summer of Code changed our open source projects for the better

The Palisadoes Foundation offers an annual summer internship program called the Calico Challenge where software engineering students are offered summer internships to work on our open source projects hosted on GitHub under the guidance of an experienced IT professional mentor. Stipends are paid upon meeting pre-defined goals. Sponsorship has been provided by companies and individuals both in Jamaica and overseas. Calico started in 2016, and was inspired by the Google Summer of Code program (GSoC).

The Talawa Project Logo

Funding for Calico was hard to obtain in 2021, due to the pandemic, and we decided to suspend the program. But we didn’t give up hope, and applied to be a GSoC organization that year. We focused all our attention on our Talawa mobile application which was created to help community based organizations collaborate with their membership. These organizations could include religious groups, non-profit charities, social groups and in limited cases, businesses. ​We explained that we wanted to eventually host Talawa as a cloud service to help finance our education outreach.

With a five year track record of developing Talawa and other open source applications with over 30 Jamaican university students, we got in.

We didn’t expect to be awarded and were not monitoring our emails closely. However on the day of the announcement we noticed a flurry of activity on our various Talawa repositories. In a single day there were dozens of requests from programmers to have their contributions accepted and merged into our software. These “pull requests” used to be rare because our projects were small, and so we decided to investigate. We were elated to get the award, but then what?

It was pandemonium. There were many unforeseen challenges:

  1. Project activity skyrocketed overnight with the following statistics taken a week after the GSoC announcement. A “fork” occurs when a software developer copies a project to their own private account so that they can work on modifications that will then be merged back into the original project through a “pull request”
    • Project Talawa: 132 forks, 672 pull requests
    • Project Talawa API: 77 forks, 230 pull requests
    • Project Talawa Admin: 12 forks, 15 pull requests
  2. We had very little documentation on how to use the software, desired features, procedures for contributing code and our overall vision.
  3. The software was buggy and there wasn’t any automated software testing to make the operation smoother.
  4. A large number of mentors needed to be found to guide students.
  5. Students were constantly asking questions on our Slack channel, a service similar to WhatsApp.

A plan was quickly put in place.

  1. We placed a call for mentors on every tech WhatsApp group we knew. Within days we had Jamaican IT professionals monitoring the pull requests.
  2. Minor changes to the software, such as fixing typos, were rejected.
  3. Pull requests had to be tied to documented GitHub issues (the equivalent of trouble tickets and feature requests) that explained the aim of the proposed software changes.
  4. All GitHub issues created by software developers were automatically tagged as being “unapproved”.
  5. Only Palisadoes mentors could assign the issues to software developers and remove the “unapproved” tag.
  6. Pull requests were only reviewed on approved GitHub issues.
  7. We only accepted GitHub issues to fix bugs while we worked on a strategy to rewrite the code to be more reliable. This is what is also called a “code freeze”.
  8. GitHub issues for new “feature requests” were added to the list of things to do for the code rewrite during the code freeze.
  9. We created new GitHub issues to develop ways to improve our automated testing and code formatting. These were assigned to potential GSoC students.
  10. We created YouTube videos outlining the various Talawa projects to help answer many of the questions we were receiving.
  11. After the videos were created we held a series of webinars to guide students through the projects and the GSoC application process.
  12. Mentors created a single documentation site for all Talawa projects.
  13. We started a series of structured weekly strategy meetings with mentors to coordinate our activities. The meetings were minuted and the results distributed to all members so they would always be up to date in case they missed a session.
  14. Our Slack channels were reworked to have separate channels to discuss each project. Other channels dedicated to automatically announce newly created GiHub issues and pull requests were established to help alert potential contributors to opportunities to participate in improving our code. We also created a general discussion channel and a closed mentor channel as a quick means of communication.
  15. Palisadoes Foundation volunteers were constantly asked questions by globally dispersed students which disrupted the volunteers’ other activities such as their regular jobs, and sleep. We created a protocol whereby students were redirected to mentors assigned to the relevant projects and alerted students to the best times of the day (office hours) to contact mentors about questions.
  16. A lot of time was spent setting an inclusive culture within the projects that discouraged bad behavior, such as flaming (hostile and insulting remarks), lone wolves and closed collaboration groups.
  17. We also tried to make everyone have an equal chance of being accepted into GSoC. This extended beyond our open documentation and YouTube videos. We also converted many of our responses to private queries from students into public statements soon thereafter.
  18. We realized that many of our student applicants were scattered across the globe, but our mentors were mainly based in Jamaica. Mentors in a range of timezones were required. We were fortunate to get a volunteer based in India to help us have coverage around the clock to monitor activity on GitHub.
  19. A formal communication plan had to be created. We scheduled email campaigns, blog posts and social media announcements so that we would have new content about our experiences distributed each month so that we would remain relevant in the eyes of our community.
  20. We created a software development workflow where all changes were tested in a dedicated “development” area. This development code was only migrated to our production “master” branch when it was deemed to be stable after numerous tests.
  21. We encouraged students to always create GitHub issues on the GitHub website so that everyone could get an idea of the outstanding work that needed to be done. This greatly helped in setting our coding priorities.
  22. We also created career sessions with mentors to provide guidance to students on how to handle some of the foreseeable challenges in their careers.

The experience has been both exhilarating and frightening. We kept our cool and focused on a rapid succession of incremental changes that have created a revolution in the way we handle our projects.

Special thanks to all our mentors around the world.

  • Troy Anderson
  • Xavier Bryson
  • Brandon Chung
  • Jason Gayle
  • Shannon Henry
  • Shannika Jackson
  • Dimitri Johnson
  • Jordan Jones
  • Jordan Liu
  • Phillip Llewellyn
  • Dominic Mills
  • Deandrew Moore
  • Delton Phillips
  • Laurell Seville
  • Gareth Thomas
  • Tahj Thompson
  • Sagar Utekar
  • Ranil Wallace