Software Developer Software Developer on the Infrastructure team

Key Responsibilities
Software Development: 80%

Design, build, document, and ship software that improves healthcare outcomes in underserved communities around the world. Write code. 
Work with Medic and its partners along the entire software development life-cycle: Understand problems, capture requirements, design modular software systems, write great software, and document each step. 
Participate in daily stand-up meetings, weekly iteration reviews, and monthly milestone reviews. 
Learn new languages, platforms, toolkits, libraries, tools, and application development paradigms as necessary. Build step by step. 
Contribute directly to open-source and free software projects as appropriate. This involves posting an update in the corresponding Slack channel every workday and participating in a stand-up meeting daily. 
Handling of various backlogs by prioritization and putting them in the workstream. 
Follow up on new issues that are raised in the main repository and prioritize work on the main and urgent issues. Time permitting, follow up on new PRs that are created in the main repository. 
Evaluate reported bugs (new issues) within 24 hours after submission, optimally to find a solution, provide a workaround or assess priority and/or complexity.
Offer support to team-members by:

Answering questions.
Doing timely code reviews (ideally in under 24 hours from request).
Direct support when needed.

Follow up on production issues and address high-priority issues or production issues within one working day of discovery/submission.
Keep abreast with changes in the app. Keep updated with any new developments. Check what the app developers are working on to ensure that there is no conflict and any arising issues are dealt with in good time.
Strive to deliver high-quality and near-perfect software that is feature-complete, well-performing, well designed, error-free, and user-friendly.
Proactively seek new technologies or implementations that might solve current problems in better/more efficient ways. This involves reading blogs, reading release blogs, and keeping aware of the changes happening with the technical scope. Looking for improvements for the existing software that has been worked on by other people. 
Proactively anticipate problems that might occur and act on them, preferably prior to release. This involves a daily review of all the possible risks involved. It also involves testing, mitigation of the possible risks, and a deeper understanding of the code in order to have a stable application. Imagine possible scenarios of what the user might do and come up with a solution. 
Assume release-manager responsibilities when assigned to a release.
Adhere to the development workflow + comply with administrative duties. This has to be adhered to. The code has to be well written and easily understood. 
New code must conform to the coding style guide 

Strategic Planning: 10%

Evaluate tools and technologies; develop long-term software and platform roadmaps.
Improvement; Assess if the solution is working and how it can be improved further. 

Team Support: 10%

Consult on technical needs for larger-scale deployments, including local hosting, SMS aggregators, app scalability, etc. This involves interaction with the app services and the relevant squads. 
Work collaboratively with the rest of the product team to turn user insights into new features and interfaces that help empower our users.
Work with regional tech leads- app services developers in Africa and Asia on the configuration of Medic’s toolkit as needed and offer support when need be. 
Provide remote troubleshooting support to active deployments as needed.
Prioritize troubleshooting urgent problems in live instances.
Identify possible production problems by checking through or reviewing the issues that have been reported.
Follow up and investigate questions asked on Slack channels and the CHT forum.
Keeping in contact with SRE team.
Provide workarounds and/or develop scripts that fix/address urgent issues that happen in production instances. When such issues arise, keep the product team informed about the progress made and implemented solutions.
Provide technical information, explain processes, clarify interactions when requested and ensure proper documentation.

Skills Knowledge and Expertise
Skills Required:       

Comp Science/ Engineering
Industry Experience in Software Development
Software development skills
Experience in Agile Tools Usage
Familiarity with SQL (relational databases) and non-relational databases

 Key Competencies:

Software design and development
App Development
Bug Resolution
Technical Software Improvement

go to method of application »

Use the link(s) below to apply on company website.  

Apply via :