Every January the Massachusetts Institute of Technology (MIT) conducts an Independent Activities Period (IAP) where members of the MIT community can organize, sponsor, and participate in a wide variety of activities including academic forums, how-to sessions, athletic endeavors, and creative classes. This year, WSO2 partnered with MIT faculty and staff to bring 6 students to its Colombo office to explore Sri Lankan culture, get hands-on with a coding project, and learn Ballerina - an open source programming language for cloud-era application developers.
The students from MIT began their visit with a tour around the island. Starting with a safari in the jungles of Yala National Park, the students headed upcountry to Ella which boasts a cool temperature along with plenty of waterfalls and greenery. After an impromptu pitstop in Kandy, they next went to the majestic Sigiriya Rock which was home to King Kashyapa’s garden palace built in the 5th century. After returning to Colombo, the students then prepared for their 3-week course on computing concepts and Ballerina.
During the next week and a half, the 6 MIT students along with 7 other students from Sri Lankan universities gathered at the WSO2 office in Colombo and went through a series of introductory and hands-on sessions related to topics on Ballerina and enterprise architecture concepts:
They then moved on to building a project of their own. For the project scope, Dr. Sanjiva Weerawarana, the founder and CEO of WSO2, along with Achala Meddegama, the CEO of ESOFT Technologies and founder of Reforest Lanka, worked with the Ministry of Environment to gather a set of requirements. They wanted to build a central platform that can be used to manage environmental issues such as deforestation, reforestation, development, and conservation efforts. This platform would enable the country to maintain holistic, tangible, and accessible information on what we already have, what we have lost, and what we want to re-establish in terms of nature, land, water, and air.
The third and final week of the course started with the 13 students presenting what they have worked on so far. This ranged from front-ends for mapping national parks and creating and reviewing environmental requests to back-ends for sending real-time notifications to users/admins and connecting with the GitHub API to maintain issues/requests. Then, Dr. Saman Amarasinghe, the associate head of the Department of Electrical Engineering and Computer Science at MIT, spoke to the students about domain-specific languages, his own life experiences as a student and a professional, the differences between studying in Sri Lanka and the USA, and the importance of taking risks and not being afraid of failure.
Nilesh Jayanandana, a platform architect at Platformer Cloud - a Google Cloud and enterprise-grade Kubernetes services and solutions provider - also spoke to the students about the advantages of maintaining a continuous integration and deployment (CI/CD) pipeline and explored areas like testing, monitoring, deployment methods, service meshes, and chaos engineering.
The students continued their work on the project in the next few days and presented their final proof of concept on January 24. Through their dashboard users can check whether building on their land violates any rules pertaining to protected areas like national parks. They can also make land requests to the Ministry of Environment. Admins from the ministry can then review, comment on, and approve these requests. The code for the project can be found here: https://github.com/lakinduakash/mit-iap-environment-platform.
When asked what they thought about the Ballerina language here’s what they had to say:
“I haven’t worked a lot with networking aspects but it seems to be much easier to write services that communicate over a network in Ballerina. For example, when you write an HTTP request you can [visualize the sequence diagram] and see the connections between the services,” - Sisam Bhandari, a sophomore student at MIT.
“I was new to APIs but Ballerina made it easier to understand. It was easy to set up the Ballerina GitHub API connector and the code was very concise,” - Annie Synder, a freshman at MIT.
“[Ballerina] makes creating a backend service much easier. If you used anything else you have to learn about how you can connect to, for example, AWS and then go and do it. But Ballerina makes it simpler and helps you visualize the interactions,” - Shikar Jagadeesh, a sophomore at MIT.
“We had to format the JSON payload. Unlike other languages, Ballerina has a JSON property so converting it was a lot easier,” - Lakindu Akash, a third-year student at the University of Colombo School of Computing.
All in all, the program ended successfully. It helped the students learn key real-world computing concepts as well as experience the culture in Sri Lanka.