A Surprisingly Complex Task


My first week at Ona I was assigned a GitHub issue labeled high priority. The GitHub issue was created about 3 weeks before I joined. My task was to upgrade the HTTP library that was being used in the OpenSRP Android client. OpenSRP was using DefaultHttpClient and it was not working for Android version 5.0 and 5.1. That meant trying to send HTTP requests from OpenSRP Client to OpenSRP Server from Android version 5.1 generated below error.

error screenshot

 Continue reading A Surprisingly Complex Task...

Building Open Guidelines for Rapid Diagnostic Tests


Rapid diagnostic tests (RDTs) are used around the world as low-cost disposable tests capable of diagnosing a variety of common diseases, such as malaria, syphilis, and HIV. These tests come in a variety of shapes and formats, which poses challenges for accurate use and interpretation by the clinicians and community health workers providing care. Below are some of the different form-factors of RDTs currently being used.

different types of RDTs

 Continue reading Building Open Guidelines for Rapid Diagnostic Tests...

Dependency injection with Kotlin using the Koin library


Dependency injection: Kotlin it with koin


Many experienced Java Developers are familiar with Dagger, some may have used libraries like Guice, Weld or the Context Dependency Injection (CDI) available in the Spring framework for managing dependencies in their apps. With the adoption of Kotlin you may be wondering which tool/library to use for dependency injection in your next app. Whereas you can use Dagger (for all Dagger lovers out there) in a Kotlin app, thanks to the 100% Kotlin interoperability with Java, there are a couple of Kotlin libraries designed specifically for this. Our focus here will be exploring the Kotline dependency injection library Koin, but another library that’s worth mentioning is KODEIN.

 Continue reading Dependency injection with Kotlin using the Koin library...

How to Build a Slack Bot for Reporting Standups


After joining Ona as a Software Engineering Intern, I was tasked to compile and post standups for all the members of the project we were working on. At first it was a great experience, and even better we could alternate shifts with another intern. However, as time went by the task was too repetitive and had lots of back and forth reminding team members to send their standups. I met another colleague from another team who had the same issue and had thought of building a bot that would compile standups for various teams and individuals. After some hours of reading and re-reading the Slack API documentation we realized we could make the idea a reality. We decided to build a Slack app using Node.js. This would save us from doing mundane compiling tasks and create a better experience for everyone involved… a.k.a laziness for the win :p. Since the app is pretty huge I will split the tutorial into various posts.

In this tutorial, we’ll be building a Slack app called autostandup that provides functionality to submit standups. Our app will allow users to submit their standups by invoking a slash command on Slack, which will fire up a dialog/form to submit their standups and send a confirmation message to the user once the standup is persisted to the database.

 Continue reading How to Build a Slack Bot for Reporting Standups...

A Dive into The World of Data at Ona


It’s been an engaging and enlightening week. I came into the Ona offices certain that the internship would demand from me nothing short of diligence and strong work ethics. But I did not expect that to be the case from my first day. I expected a day of orientation, but that lasted for an hour. I had a brief introduction to my coworkers and the next thing I was shown my workstation and given a laptop.

From my short observation, it was evident that the accolades Ona has received this year, from being selected as one of TIME magazine’s Top 50 Most Genius Companies as well as being the 2018 Gavi pacesetters for Ona’s OpenSRP app did not land at their doorstep by mere chance. It was a Monday morning and everyone was deeply engrossed in their work. I was inspired by just seeing how immersed my coworkers were in their work, be it out of passion or assiduity. The work environment here is fast-paced, yet the culture and atmosphere is relaxed. In my opinion this allows the employees to be themselves and get into their individual element. This in turn, allows the team to be collectively productive.

 Continue reading A Dive into The World of Data at Ona...