Senior Software Engineer (Android/Java)

Purpose
This position is to work on the OpenSRP team at Ona. OpenSRP is an open source mobile health platform that allows frontline health workers to electronically register and track the health of their entire client population. Read more about OpenSRP.
We’re looking for developers who want to build foundational data systems that drive change. Our team has worked on projects that record the social infrastructure of entire countries, tally the winners of national elections, and reduce infant mortality. We build software that solves real problems and you will too.
Qualities we’re looking for
Thoughtful coder

You understand the importance of abstractions and interfaces. You keep modules loosely coupled and know that algorithms + data structures = programs.
You read and understand existing systems before diving in. You know how to prototype, how to iterate, and when to step back and think it through or ask questions.

Builder.

You are committed to the projects you work on and need to see them through to completion. You understand that solving the user’s problem is the end goal.

Lifelong learner.

You stay up to date with the latest trends and are excited to learn new languages, tools, and best practices.

Explorer.

You thrive in teams and projects that span timezones and cultures.
You’re ready and excited to travel in order to support projects, no matter how dusty or remote.

Responsibilities

Contribute and collaborate to the vibrant OpenSRP open source community
Define client needs, system requirements, dependencies between requirements, and expected timelines
Design, architect, extend and build Android client applications
Coordinate and balance priorities of multiple projects and deliverables

Essential

Minimum 3 years programming production Java web applications
Minimum 3 years programming production Android client applications
Experience programming with APIs and service based architectures
Experience with databases and their integration into web and Android applications
Strong attention to detail and understanding of architectural dependencies
Strong troubleshooting and problem solving skills

Desirable

Experience with Clojure, JavaScript, and Python
Experience with OpenSRP, OpenMRS, other EMRs
Experience working with remote teams