Ona Supports Emergency Response in Mozambique and Zimbabwe


Beira_buildings Damaged buildings in Beira, Mozambique. Photo credit: Sean Blaschke/UNICEF/2019

In March 2019, Cyclone IDAI hit Southeast Africa. Billed as one of the deadliest tropical storms to hit the southern hemisphere, the cyclone pummeled into Mozambique, Zimbabwe and Malawi. The devastating winds (up to 120kph), heavy rains and the resulting flooding and landslides left dozens of lives lost, thousands injured and a trail of property destroyed.

The governments of Mozambique, Malawi and Zimbabwe and the humanitarian community responded swiftly with Malawi and Zimbabwe declaring a state of emergency in the affected areas and the United Nations categorizing the emergency at Level 3 (L3). L3 responses are activated in the most complex and challenging humanitarian emergencies requiring system-wide responses. This placed the emergency at the same level as the humanitarian crises in Yemen and Syria, resulting in a host of governments, the UN and other international humanitarian agencies sending emergency response teams to the affected areas.

 Continue reading Ona Supports Emergency Response in Mozambique and Zimbabwe...

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...