WSO2 partnered with Massachusetts Institute of Technology (MIT) faculty and staff to bring six students to its Colombo office to learn Ballerina, an open source programming language for cloud-era application developers, and to explore Sri Lankan culture.
This visit was part of the annual Independent Activities Period (IAP) conducted by MIT where members of the MIT community can organise, sponsor, and participate in a wide variety of activities including academic forums, how-to sessions, athletic endeavours, and creative classes.
The students from MIT began their visit with a tour around the island after which they started their three-week course on Ballerina.
The Ballerina MIT IAP program
The six MIT students along with seven other students from Sri Lankan universities gathered at the WSO2 office in Colombo. The course consisted of a series of introductory and hands-on sessions related to Ballerina and enterprise architecture concepts:
- Introduction to Ballerina by Hasitha Aravinda – Technical Lead, WSO2 and Gihan Anuruddha – Technical Lead, WSO2
- Ballerina Standard Library Hands-on by Chamil Elladeniya – Senior Software Engineer, WSO2 and Arshika Arshika Mohottige – Software Engineer, WSO2
- Docker and K8s Concepts by Afkham Azeez – VP of Platform Architecture
- Docker and K8s Hands-on by Anuruddha Liyanarachchi – Associate Technical Lead, WSO2 and Hemika Kodikara – Associate Technical Lead, WSO2
- Microservices Concepts by Kasun Indrasiri – Senior Director, WSO2
- Microservices Security Landscape by Prabath Siriwardena – VP of Security Architecture
- Ballerina Language Level Security by Ayoma Wijethunga – Technical Lead, WSO2 and Dhananjaya Wickramasingha – Senior Software Engineer, WSO2
- Microservices Security in Practice with Ballerina by Ayoma and Chanaka Lakmal – Senior Software Engineer, WSO2
- SQL/NoSQL Storage by Anupama Pathirage – Senior Technical Lead, WSO2 and Maryam Ziyad – Senior Software Engineer, WSO2
- Frontend Development (SPA, Tokens, UI/UX) by Joseph Priyanga – Director, WSO2
- Modern DevOps: CI/CD by Nilesh Jayanandana – Platform Architect, Platformer Cloud
- Domain-Specific Languages by Dr. Saman Amarasinghe – Associate Head, Department of Electrical Engineering and Computer Science, MIT
During the course, the students also worked on 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. This included building 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 environmental information.
The proof of concept created by the students included a dashboard where users can check whether building on a land area in Sri Lanka violates any rules pertaining to protected areas like national parks. Users 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.
Students cite the advantages of using Ballerina
“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 [visualise the sequence diagram] and see the connections between the services,” said Sisam Bhandari, a second-year 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,” said Annie Synder, a first-year student 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,” stated Shikar Jagadeesh, a second-year student at MIT.
“We had to format the JSON payload. Unlike other languages, Ballerina has a JSON property so converting it was a lot easier,” said Lakindu Akash, a third-year student at the University of Colombo School of Computing.