Friday, March 31, 2023

My Open Source Journey



While at campus, i got to learn of open source software technology from a friend who was at the time contributing actively to one open source software called OpenMRS. He encouraged to find time and contribute to open source because among the dividends, he stated that i would gain experience and get exposed to the outside world hence landing a juicy remote software development job.

OpenMRS is a global community of truly dedicated, talent and generous contributors who build and maintain the OpenMRS Platform and other , foundational OpenMRS technical products. The OpenMRS Platform is used by implementers to create a customized EMR system depending on the needs on ground.

The early days of me joining OpenMRS weren't as smooth for me because the source code seemed too big for me and too much so i kind of held off in trying to contribute and learn. It is after a while that i was introduced to the Quality Assurance Squad and i was gradually mentored by the Engineers in there who were at the time doing their fellowship. Sharif Magembe and Kakumirizi Daud really played a big role in me learning the various technologies used in the QA squad like Selenium, Cypress, Cucumber BDD Framework. I contributed in that squad for about a year and each day i spent writing various test automation scripts/workflows seemed like a dream because i never believed i could ever write code for an organization like OpenMRS.
 
My volunteering experience at OpenMRS has enabled me to learn among others;-
  • collaboration and team work.
  • code reviewing.
  • pair programming.
  • Java, gherkin, FHIR, hibernate and spring framework.
  • software testing. 
My interaction with the OpenMRS community has been a very wonderful experience since everybody is out there to help on any bugs, blockers one could be having with some developers going an extra mile to guide and mentor in whatever section you could be interested in i.e backend, frontend, QA, DevOps, UI/UX Designer. 

While at OpenMRS, last year i got a chance to serve and contribute as a Platform 2.6.0 Release Manager and it was an immense experience for me as i got to interact directly with the senior developers like Daniel Kayiwa, Ian Bacher, Burke and i got to learn how things like docker, GitHub Actions, releases, maven work. The experience even earned me an upgrade in the Dev badge from Dev 1 to Dev 2 which to me is a dream come true as i endeavor to continue learning and growing in the community. I was also honored to represent the platform team at the virtual openmrs mini-community conference.

Currently I have concentrated more on improving the openmrs-core API by working on issues/tickets that are supposed to switch from hibernate XML mappings to using jpa annotations. I have also embarked on creating a module using the Procedure Fhir resource so that I can be able to understand how the openmrs module architecture.

Aluta continua .....