My fellowship Journey: Hadijah Kyampeire

I am Hadijah Kyampeire from Kampala, Uganda. I am a passionate Software Engineer majoring in Frontend programming with React/JavaScript. I found out about OpenMRS through my company Andela and I joined OpenMRS in 2018 as an apprentice. I was part of the team that started the OCL for OpenMRS application under the mentorship of @dkayiwa . This lasted for about 7 months and I became inactive.

Last year in October, I enrolled back onto the OCL for OpenMRS. It was a great opportunity for me to be part of OCL for OpenMRS again.

What I love most about OpenMRS are the community and the culture. Being part of a community with very highly talented individuals creates enough opportunity for me to grow.

During the fellowship, I hope to improve on my leadership, and mentorship skills, work with @suruchi and @jwnasambu on various tasks to improve our development careers, as well as contribute much to the OCL for OpenMRS application.

First month(April)

  • Had our first call where we discussed goals and expectations.
  • Continued to work on tickets, pair with fellows on some tickets, and review PRs for the OCL for OpenMRS.
  • 1:1s with my mentees.
  • OCL calls.

For this fellowship, I will mostly be interested in the development and QA for OCL for OpenMRS.

Great thanks to our lead Engineers who continue to support and guide us cc @dkayiwa @ibacher , fellows who give in time to review other fellows PRS and work on the OCL cc @herbert24 , @nkumar , @suruchi , @jwnasambu and @irenyak1 , Our product manager @grace for all the guidance in the work we do, and last but not least @jennifer for the fellowship opportunity and all the help in structuring learning goals.


In the second month of the fellowship(May) as a fellow mentor, I had set some goals for it and I am happy to share that I achieved most of them.

My first goal for the month was to learn about automated testing since it was the next big thing for the OCL for OpenMRS team. I reached out to @k.joseph about giving me a crash course and get me started with automated testing in cypress and cucumber. Thanks so much @k.joseph for guiding me through this, it was a great milestone for me in my development career. After learning the basics, I started on the first task for automated tests :heart_eyes:.

My other goal was to gather and write down some of the skills that are required for React engineers at different dev levels. I came up with a doc and later transferred them to the metroretro board that we always use to structure skills for various levels. I learnt from that myself and I had a self check as per the skills.

On that note, I would like to thank @jennifer and @k.joseph for guiding and helping me to align the skills well so as to have someone follow them step by step.

The other goal was to learn how to make a release and deploy to different environments, all thanks to @suruchi for giving me that chance to make our latest release for the April Sprint, it was exciting :smiling_face_with_three_hearts:.

Besides these major goals,

  • I continued to develop on the OCL for OpenMRS.
  • Help out my mentees with some complicated tasks.
  • Attended some OCL calls with the OCL backend team.
  • Weekly meetings with fellow mentors and @jennifer where we discuss different skills like for QA , frontend, project management etc.
  • 1:1s with mentees.
  • Having pair programming sessions with my mentees, had a great pairing with @jwnasambu about the work for including other sources instead of just the preferred, it was interesting.
  • Reviewing PRs and merging work.

Going forward, my main focus is going to be on automated testing for the OCL for OpenMRS and continuing with React skills definition.


It has been two months in the fellowship and the journey gets great and greater every other day :hugs:, as my focus was automated tests.

After getting a crush course from @k.joseph , I started on the automated tests for the Dictionary Management/OCL for OpenMRS and I wrote tests for login, it was a great learning experience however I bumped into some cypress configuration blockers, I reached out to some QA devs i.e @k.joseph @kdaud @ibacher and we had sessions to debug the issue. Ian jumped and helped in fixing the tests, thanks Ian. Now we have the automated tests for the login functionality testing all edge cases :clap: .

Besides that,

  • Went through the development goals for the next two months with Juliet and Suruchi, reflecting on the previously set goals and stating the new goals for June and July.
  • I have been contributing to several tickets for the OCL client i.e Enabling include and exclude for already added concepts, Pick concepts from a dictionary in addition to the sources.
  • Attending Mentorship calls where we discuss great topics that are educative.
  • 1:1s with Suruchi and Juliet.
  • Getting @suruchi and @jwnasambu started with unit testing as it was among the set goals for June-July.
  • OCL squad calls.
  • We also had a great goal with Ian about testing with cucumber and cypress so that the team continues with the rest of the automated tests.
  • Pairing sessions.
  • PR reviews and merges.

What’s next in the pipeline is;

  • Onboarding @patrickcmd and West to the OCL code base.
  • Writing unit tests for the organisation app, in that there are several things I am looking at achieving;
    1. Increasing the test coverage.
    2. Realising my mentees’ goals.
    3. Onboarding purposes.
    4. Paving a way for the team to easily work on the automated tests after getting familiar with unit tests.
  • Another big thing coming up is the Concept Customization work once it’s unblocked on the backend.

Otherwise, great thanks to everyone who is making this possible and smooth :heart:


It is mid-July, 3 and a half months down the fellowship road, I am happy to share that I have been able to work on most of my set goals.

We started on testing both unit testing and automated testing. Together with @suruchi and @patrickcmd, we worked on most of the unit test cases for the organization app in the Dictionary Manager JIRA ticket for unit tests, We were able to increase our test coverage :clap: PR.

Another great achievement was writing automated tests with cypress and cucumber, thanks to @ibacher for the guidance. Unfortunately, I am not able to share a video demo showing automated tests running in a browser but I will share a screenshot of the tests running in the terminal and a PR link.

Besides that;

  • I have been continuing with mentoring and offering support to my mentees and other upcoming developers joining the Dictionary Manager.
  • Mentor office hour calls.
  • 1:1s
  • Pairings and PR reviews.
  • Onboarding new members.
  • OCL squad calls.
  • Working on other tickets which are not QA-related.

Otherwise, we are continuing with automated testing as we wait for the new big feature of concept customization.


Since the last time I posted which was mid-July, we were right in the middle of the OpenMRS community meet-up, a two days event that was so amazing and one of the kind I have ever attended, I liked the facilitation and presentations from different squads, implementers and teams. on that note, I would like to learn presentation and facilitation skills from @grace @jennifer and @christine I was so inspired by the way you coordinated and facilitated the whole event, you made it interesting and hard to even take an eye off despite it being remote, thank you so much :clap:.

During one of the sessions, I was placed in the same zoom break room with the late Kaweesi :sob: he explained to us the new framework and the platform changes, little did I know that I was speaking to him for the last time :sob:, the next couple of days were not easy for me and the community at large, we are just gathering ourselves back together to continue with the good foundation our brother laid, I continue to pray for you to RIP.

On the Dictionary Manager team, we concluded our July sprint at the beginning of August(this month) and I am happy to share that we are halfway or three-quarters of the automated tests, thanks to the team for the great work @ibacher @suruchi and @jwnasambu .

For the August sprint, we set the priority to be, finishing all the automated tests and hopefully begin customization. Another step we have taken in the QA direction is putting a dictionary badge on the QA dashboard. I would like to give thanks to @sharif for the review on QA PRs and @kdaud for the resources you always share about cypress testing, we surely learn from them.

Otherwise, I will also be doing;

  1. More automated tests(Sharif and Daudi feel free to look at our PR or even pick some tickets, we could use your expertise).
  2. Mentorship sessions and 1:1s.
  3. Pairing sessions and PR reviews.
  4. Squad calls.
  5. Mentor office hours.
  6. Hopefully start on customization tickets.
  7. Develop a personal project that covers most of the skills Suruchi and I have been focused on for the past 4 months.

This is amazing to hear!

I have two questions though;

  1. Could you help me understand the Dictionary Manager status badge on the QA Dashboard very well. Is it one individual automated test ? Or Its a collection of all the automated tests within OCL module !

  2. Do we have a simple guide that tells the steps one has to follow to run these automated OCL tests locally ? If so I would love to get it so that I see the magic of OCL automated tests live locally !

You opened my mind to think in this direction as well. One thing though how about as well covering @jwnasambu 's work too since you are doing it together as a team!. BTW you can as well sell the idea to others in the team, its really a nice one :seedling:

I guess @grace will love to take a look at the developed personal project when ready, as well am eagerly waiting for it. :green_heart:

1 Like

You are right about selling the idea, I already did that, I talked to @jennifer about it but it needs further structuring for it to be fit to work for all mentees, this is a small idea that we just came up with to help us further our experience but there might be a more structured and meaningful project for mentees to work on at the end of the fellowship.

1 Like

@hadijah315 do you mind throwing a light on this caption ?

Oh about that, for the OCL we are still running all tests altogether so the badge is for everything, but in the future, we plan to separate tests in different workflows once we have many tests established. Also see @ibacher clarification on this here.

We should probably make things so that badge is actually tied to tests running though!

I agree with @ibacher I will probably have a call with you @kdaud about that issue.

1 Like

@hadijah315 let me know when you are ready and we catch up on the epic !

@hadijah315 did you figure it out ? @jwnasambu do you have an idea on the epic that @ibacher addressed above ?

We just ended our August sprint this week on Wednesday and I would like to share some of the highlights and achievements that we managed to do on the dictionary Manager. We had a couple of bugs from our implementers and other team members after doing QA and we were able to fix at least 95% of them in this sprint and even made a release to production. Kudos to the team :clap:.

As per the fellowship program goals, one of the main focuses we had was working on an independent project which covers most of the technical skills we plan to master. i.e ReactJs, Redux, Carbon, Material UI, Sass, Cypress, Cucumber among others.

We started on it last month, the Api is being developed by @patrickcmd and we have started to consume some of the endpoints that are available so far. New things I have learned;

  1. Implementing Google Authentication with firebase, which was so cool :heart_eyes:
  2. Using the Carbon design framework for components.

Github repo

The struggle continues, we still have a lot to cover and learn.


It has been a long time since I posted but I am happy to add to my fellowship journey that I was able to complete the personal project I had set for Suruchi, Patrick, and myself. I was able to;

  1. Add unit tests using the react testing library and Jest.
  2. Did CI with Travis and GitHub actions.
  3. Also added automated tests with Cucumber and cypress. It was a great learning experience for me, I used the knowledge I got from the automated tests in the OCL, thanks to Ian for the good test setup and commands, I used the same approach in my own tests and it made the process easier.

My test badges on Github Chrome view of the automated tests.

Besides that project;

  • I have been working with the documentation team, working on the Dictionary Manager Project Page, feel free to take a look and leave some feedback :hugs:.
  • Working on the dictionary manager tickets and bug fixes.
  • Pairing and debugging sessions with Suruchi and Ian.
  • Mentorship hours.
  • More automated tests for concepts.
  • Other calls and sessions.

With this project done, I consider it a great success for this fellowship journey, I will mainly focus on the developer Get started guide for the Dictionary Manager which is the next focus for the documentation team.

I will continue to do Dictionary manager development work, mentorship, PR reviews, and pairing sessions.

I am looking forward to another bigger practical project that can be more helpful to the community, I will reach out to @grace and @jennifer for more pointers and ideas on that. It could be a great thing for @suruchi and me to work on as we conclude the 9 months.

1 Like

Forgot to mention my other major focus this sprint, it’s to have 3 different workflow badges for the Dictionary Manager automated tests, thanks to @kdaud for accepting to take us through how that will be done. Hopefully, we shall have a call scheduled for that pair session this week.

1 Like

Would be glad to be there! Just send a calendar invite and hopefully my colleague @sharif will be available to give guidance too on workflow test configurations to have the deal done.

I was actually thinking of reaching out to @sharif as well, you just spoke my mind :slightly_smiling_face:. Maybe just to confirm which time is convenient for all of you @sharif @kdaud @suruchi

Can make it on Monday or Tuesday.

Time? @kdaud