Senior Software Engineer - Consultant

Job Title

Senior Software Engineer, Consultant                    

Department


Division


Reports to

Informatics


EHA Clinics


Senior Manager, Clinical and Laboratory Informatics



Who we are: EHA Clinics, a subsidiary of eHealth Africa,  is a chain of clinics spread across Nigeria that provides innovative and technology-driven healthcare to the population. EHA Clinics currently operates three Clinics located in Abuja and Kano and is working to expand to other parts of Nigeria. EHA Clinics uses state of the art equipment to bridge the gap in the provision of high-quality diagnostics and healthcare through routine services (general consultations, laboratory investigations, pharmaceuticals, annual medical checks, child wellness checks, ultrasonography...etc) and specialized services (telemedicine, medical evacuation, home care, dental care, ophthalmology, and radiology).

 

Within every clinic location, EHA Clinics simultaneously implements a Community Health Program which utilizes an innovative financing mechanism to promote universal health coverage and access for the low-income, uninsured and underserved population through a low-cost, pro-poor prepayment scheme.  These programs form the basis of care EHA Clinics provide, catering to different cadres of the population based on economic profiles.

 

Summary of Job

The senior software engineer is expected to have expert knowledge of mobile application development using languages such as  Java, Kotlin, and flutter. In this role, through architecture and hands-on programming, you will support EHA Clinics’ products’ technical roadmap, and work with the development team to design and build advanced features into products, and ensure they are robust and reliable in 24/7 operations.

Working closely with the product owner, the software engineer will oversee the development of the SMART Application. SMART is a mobile EMR for malaria and sickle cell disease diagnosis, built using Java/Kotlin and powered by an Odoo backend.  However,  the engineer can also be assigned to work on other projects with other teams within the Informatics unit.  We use an array of technologies  and languages which include

  • Java

  • Kotlin

  • flutter/dart

  • Firebase

  • Git

  • Continuous integration tools

  • Postgres etc

While we do not expect that the engineer has sufficient experience using this wide array of technologies, we expect someone with an appetite for learning and grasping new technologies as demanded by the project.

Essential Duties and Responsibilities: To perform this job successfully, an individual must be able to perform each essential duty satisfactorily. Other duties may be assigned.

 

  • Guide problem solving and architectural decisions within the team and across the company.

  • Mentor junior developers, analyze and review the codebase to ensure security and scalability.

  • Understudy the business processes (EMR, Inventory, Accounting, etc.),  and design systems that adequately address business needs.

  • Develop and optimize services with profiling, debugging, data structure, and algorithms.

  • Design, architect, and refactor software for a wide range of services. 

  • Define, capture and use real-time event data to build metrics and dashboards that support data-driven development

  • Collaborate with DevOps, QA engineers, and other developers to drive forward how we build, test, and deploy our services 

  • Stay up-to-date with the latest technologies and best practices, inspiring your colleagues with examples and concepts 

  • Work closely with business stakeholders to define best practice standard operating procedures for all functional aspects of the business that are supported by the Odoo ERP

  • Responsible for requirements gathering and scope definition together with various business stakeholders 

  • Assist in data integration and mapping. Data is required to be transferred to and from Odoo to other mission-critical systems 

  • Determine reporting requirements, and fulfill the proper long-term solution for delivering this reporting 

 

Role Requirements: The requirements listed below are the knowledge, skills, and/or ability required to successfully perform this job: 


  • Good knowledge of technology across several domains, with expert-level knowledge of Android application development using java and/or Kotlin 

  • At least 5 years’  experience in building mobile applications 

  • Expert knowledge of Relational Databases and NoSQL Databases - design development, optimization, and performance tuning 

  • Rock-solid understanding of data structures, algorithms, and software design 

  • Rigor in high code quality, unit testing, automated testing, as well as other engineering best practices

  • Good understanding of what is needed to get things done in a collaborative manner 

  • Attention to details, not only caring about writing codes that work, but about performance, scalability, security, and optimization

  • Ability to look at the big picture and the small details, and make design and architecture decisions 

Desirable but not required:


  • Good knowledge of application development using a hybrid framework such as flutter/dart

  • Understanding of agile methodology 

  • Experience with the following tools: Git, Jira, Docker, Circleci, Travis, Jenkins, Terraform, Kubernetes, Helm, CI/CD, Postgres 

Working Hours 

The Senior Software Engineer - Consultant is a full-time position requiring a minimum of 40 hours per week. All staff at EHA Clinics are occasionally expected to work beyond the mandated 8 hours a day when the need occurs.  

Salary

A competitive salary scale that is negotiable, but performance-based.